Код: Выделить всё
function multiplier(factor) {
return number => number * factor;
}
let twice = multiplier(2);
console.log( twice(5) );
// → 10
Однако, что я не понимаю в предыдущей функции, так это то, почему она работает.
Я имею в виду, что при вызове multiplier( 2 ) я предполагаю, что «фактор» принимает значение 2 (но «число» не определено, верно? ), а полная функция multiplier возвращает «функцию тире»:
Код: Выделить всё
number => number * factor;
Позже, в console.log(twice(5)); я вызываю «дважды» с 5 в качестве аргумента, поэтому я снова предполагаю, что 5 обновит «фактор», а не «число».
Итак, чего я не вижу, так это того, почему в вызов, 5 обновляет «число», а не «фактор», потому что результат равен 10.
Я буду признателен за любые разъяснения или исправления моих предположений.
Подробнее здесь: https://stackoverflow.com/questions/798 ... tion-works
Мобильная версия