这是我在我的JavaScript学习跌跌撞撞最奇怪的行为之一,JavaScript如何处理嵌套函数中的参数?
这是例子:
function multiplier(factor) {
return function(number) {
return number * factor;
};
}
var twice = multiplier(2);
console.log(twice(5));
// → 10
这是一本书Eloquent JavaScript采取的一个例子,笔者在解释它令人困惑的方式,这使得它更奇怪:
在这个例子中,乘法器返回一个冻结的代码块,获取 存储在两倍变量。最后一行然后调用 这个变量的值,导致激活冻结的代码(返回数字*因子;)为 。它仍然可以从创建它的 乘数调用中访问因子变量,并且还可以访问在解冻时通过的参数 ,通过参数 参数5。
谁能解释multiplier
功能的twice()
第二个电话是如何分配的参数的嵌套函数,以及如果有更多的嵌套函数是,是什么概念,这个规则?
你曾经使用C玩过吗? – leaf