Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   замыкание. как передается параметр? (https://javascript.ru/forum/misc/59126-zamykanie-kak-peredaetsya-parametr.html)

ziga 28.10.2015 22:59

замыкание. как передается параметр?
 
в книге 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?

Vlasenko Fedor 28.10.2015 23:26

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
}


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