Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.02.2016, 22:12
Новичок на форуме
Отправить личное сообщение для vsenetak Посмотреть профиль Найти все сообщения от vsenetak
 
Регистрация: 16.04.2015
Сообщений: 9

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

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


Ни как не могу понять, что передается в параметр number, и куда должно пойти значение 5 из последней строчки?
Ответить с цитированием
  #2 (permalink)  
Старый 27.02.2016, 22:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от vsenetak
что передается в параметр number, и куда должно пойти значение 5 из последней строчки?
пять и передаётся из последней строки
Ответить с цитированием
  #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
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расширение для Safari. Как вызвать функцию из popover в global page? housewm Opera, Safari и др. 0 21.12.2013 06:07
передать анонимную функцию, вызывающую другую функцию с нужными параметрами Ваяс Общие вопросы Javascript 5 21.02.2013 20:12
Выполнить функцию заранее неизвестную Neokortex jQuery 2 13.02.2012 12:41
checkbox включен запускаем одну функцию выключен другую Sadist_dead Элементы интерфейса 11 27.09.2011 10:46
проблема с передачей параметров в функцию bartonom Элементы интерфейса 4 19.09.2011 12:41