我用口才的javascript看到了这个示例,并想知道此函数的工作原理。有人可以向我解释一下吗?
function multiplier (factor) {
return function(number){
return number * factor;
};
}
var twice = multiplier(2);
console.log((twice(5));
// 10
我能够遵循参数factor = 2。
我对两次(5)以及如何成为参数编号感到困惑。
最佳答案
这是JavaScript中“关闭”的示例。
说:
var twice = multiplier(2)
真的和说的一样:
var twice = function(number){
return number * 2;
};
因此,两次成为对函数的引用,该函数将为您返回发送给它的值的两倍。
乘法器函数返回
function(number){...}
,该值在因数(在本例中为2)上具有“闭合”值。这就是为什么在调用
twice(5)
时得到的结果是10。您需要阅读闭包:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures