有人能用javascript告诉我们这个闭包函数的流程吗
请告诉我它的流程有人能用javascript告诉我们这个闭包函数的流程吗,javascript,function,Javascript,Function,请告诉我它的流程 function multiplier(factor) { return function(number) { return number * factor; }; } var twice = multiplier(2); console.log(twice(5)); // → 10 第一个函数返回另一个函数,基本上如下所示: function(number) { return number * 2; } 因为它从外部
function multiplier(factor) {
return function(number) {
return number * factor;
};
}
var twice = multiplier(2);
console.log(twice(5));
// → 10
第一个函数返回另一个函数,基本上如下所示:
function(number) {
return number * 2;
}
因为它从外部范围“记住”了
因子
参数。然后这个返回的函数被简单地应用于参数5。当您调用乘数函数时,它返回另一个函数
function(number) {
return number * 2;
};
现在“tweep”是一个函数,具有上面的函数表达式
所以,当您使用参数5调用两次函数时。i、 e两次(5),返回“10”
每个人都有一个疑问,就是“因子”变量即使在乘数函数的作用域之外,它是如何仍然存在的
这是因为JavaScript中的词法作用域,即外部函数变量可用于内部函数
由于返回语句中使用了“factor”,javascript解析器必须为其内部函数保留其值。这叫做闭包
Simply Closure是一个具有扩展内存的函数。在这两个函数中添加一个
console.log
,请参阅。。。