Javascript.RU

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

замыкание. как передается параметр?
в книге eloquent javascript есть такой пример:
function multiplier(factor) {
	return function(number) {
		return number * factor;
	};
};
var twice = multiplier(2);
console.log(twice(5));


не могу понять, как значение 5 становится параметром function(number). почему в multiplier(2) значение передается как factor, а в twice(5) в number?
Ответить с цитированием
  #2 (permalink)  
Старый 28.10.2015, 23:26
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

function multiplier(factor) {
	return function(number) {
		return number * factor;
	};
};
var twice = multiplier(2);
console.log(twice.toString());
/*
function (number) {
	return number * factor; //factor = 2
}
*/
console.log(twice(5));
//вызываем функцию number = 5;

1 раз возвращается функция factor с значением 2 сохраняется в замыкании
2 вызывается полученная ранее
function (number) {
	return number * factor; //factor = 2
}
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не передается параметр AllReady Общие вопросы Javascript 2 08.07.2014 12:16
Как использовать sprit'ы? Hekumok Общие вопросы Javascript 17 10.08.2012 11:24
Как сделать как в JQ? faforty Общие вопросы Javascript 8 14.11.2011 01:35
Как передать параметр? greatilya Events/DOM/Window 10 15.06.2010 11:50
Как запомнить в переменную параметр объкта style? Paska Элементы интерфейса 6 10.05.2010 22:09