Показать сообщение отдельно
  #3 (permalink)  
Старый 27.02.2016, 23:34
Аватар для EmperioAf
Профессор
Отправить личное сообщение для EmperioAf Посмотреть профиль Найти все сообщения от EmperioAf
 
Регистрация: 15.01.2015
Сообщений: 622

Сообщение от vsenetak Посмотреть сообщение
Объясните, пожалуйста, как работает функция с замыканием.
В книге "Выразительный JS" есть такая функция:
function multiplier(factor) {
  return function(number) {
    return number * factor;
  };
}

var twice = multiplier(2);
console.log(twice(5));
// → 10


Ни как не могу понять, что передается в параметр number, и куда должно пойти значение 5 из последней строчки?
после присваивания
var twice = multiplier(2);


получается, что:
twice = function(number) {
    return number * 2;
  }

очевидно, что
twice(5) = function(number) {
    return number * 2;
  }(5)

и получается, что twice(5)=10
Ответить с цитированием