JS_HOME_WORK/77-function-closures/solution.js
2025-01-17 01:00:07 +01:00

55 lines
1.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/** ЗАДАЧА 77 - Замыкания
*
* 1. Создайте функцию "createGreeting", внутри которой создайте:
* - переменную "greetingString" с значением "Hey, this is"
* (объявите ее используя "let")
* - функцию "greet" с одним параметром, которая должна возвращать
* строку-приветствие на основании "greetingString" и параметра,
* например, "Hey, this is Bob"
* - функцию "changeGreeting" с одним параметром, которая должна
* изменять значение переменной "greetingString"
*
* 2. Функция "createGreeting" должа вернуть объект с двумя методами:
* - greet
* - changeGreeting
*/
const createGreeting = () => {
let greetingString = 'Hey, this is'
function greet(name) {
return `${greetingString} ${name}`
}
function changeGreeting(newGreeting) {
greetingString = newGreeting
}
return {
greet,
changeGreeting,
}
}
const greeting1 = createGreeting()
console.log(greeting1.greet('Bob'))
// Hey, this is Bob
greeting1.changeGreeting('Good Morning from')
console.log(greeting1.greet('Emily'))
// Good Morning from Emily
greeting1.changeGreeting('Good Evening')
console.log(greeting1.greet('Emily'))
// Good Evening Emily
/* ____________ */
const greeting2 = createGreeting()
console.log(greeting2.greet('Emily'))
// Hey, this is Emily