Javascript-форум (https://javascript.ru/forum/)
-   Учебные материалы (https://javascript.ru/forum/study/)
-   -   Объясните пример замыкания функции из книги (https://javascript.ru/forum/study/77397-obyasnite-primer-zamykaniya-funkcii-iz-knigi.html)

SpZm1ro 26.04.2019 19:40

Объясните пример замыкания функции из книги
 
В "Выразительном JavaScript" пример замыкания. [...] Функция,
умножающая числа на любое заданное число:

function multiplier(factor) {
  return function(number) {
    return number * factor;
  };
}
var twice = multiplier(2);
console.log(twice(5));
// → 10


Поясните, пожалуйста, как она работает? Каким образом передать параметр "number" в эту внутреннюю функцию? Я вижу, вызовом "twice(5)" эта пятерка каким-то образом идет как нужный параметр. Но почему так? Ведь у функции multiplier лишь один параметр и это number.
Читаю книгу с начала, до этого все понятно было. Здесь ну никак не въеду.

рони 26.04.2019 20:10

Цитата:

Сообщение от SpZm1ro
Каким образом передать параметр "number" в эту внутреннюю функцию?

twice и есть внутренняя фунция
twice = function (number) {
        return number * factor;
    }

SpZm1ro 26.04.2019 21:02

Понятно теперь, там в 6 строке не копирование, а вызов функции multiplier. Спасибо!


Часовой пояс GMT +3, время: 19:47.