function multiplier(factor) {
return function(number) {
return number * factor;
};
}
var twice = multiplier(2);
console.log(twice(5));
//output 10
有人可以解释为什么“数字”参数没有返回为未定义吗?我真的很难理解如何将变量“两次”定义为具有固定值 2 作为其参数的函数,然后可以将其用作具有可传递参数 5 的函数?
最佳答案
简答:
当您有 var twice = multiplier(2);
时,与:
twice = function (number) {返回数字 * 2};
假设 Multiplier 是一个类,它有一个属性 factor
(需要初始化对象),当 Multiplier 被初始化时它返回一个函数,该函数接受 number
并乘以 factor
。
关于javascript - 封闭函数行为困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31949744/