помощь в разборе скрипта JS
всем привет!
подскажите, пожалуйста, по следующему примеру:

каким образом параметр функции guess(passwordGuess) принимает значение tryGuess(nope) ?
как я размышляю?
tryGuess есть ссылка на функцию makePassword. Вызывая просто tryGuess мы передаем "secret" в параметр функции makePassword. это вроде понятно. но как так получается, что мы в tryGuess указали параметр "nope" и он оказался не в makePassword, а в guess ?
Помогите разобраться, пожалуйста.
И если можно, скиньте хороший ресурс, где доступно объясняются функциональные выражения, колбэки, замыкания и тп
makePassword(password) {
return function guess(passwordGuess) {
return (passwordGuess === password);
};
}
var tryGuess = makePassword("secret");
console.log("Guessing 'nope': " + tryGuess("nope"));
console.log("Guessing 'secret': " + tryGuess("secret"));
Ответы (1 шт):
Автор решения: Gleb Raychenkov
→ Ссылка
Ниже два примера основанные на твоем коде которые наглядно показывают механику.
Пример #1:
function makePassword (password) {
return password
}
var tryGuess = makePassword("secret")
console.log(`tryGuess is ${typeof(tryGuess)} = ${tryGuess}`)
//выводим тип tryGuess и ее значение
Пример #2:
function makePassword (password) {
return function guess(passwordGuess) {
return (`${password} + ${passwordGuess}`)
}
}
var tryGuess = makePassword("secret")
console.log(`tryGuess is ${typeof(tryGuess)} = ${tryGuess}`)
console.log(`tryGuess is ${typeof(tryGuess)} = ${tryGuess("nope")}`)
//выводим тип tryGuess и ее значение, после выводим еще раз с подставленным значением nope