为什么我运行console.log(action(8))两次,它给出了答案1108和2108? 不应该是1108& 1108?
var counter = 100; //line 1
function make(){
var local = 1000;
return function(x){
temp = local;
local *= 2;
return x + counter + temp;
}
}
var action = make();
console.log(action(8)); // 1108
console.log(action(8)); // 2108
答案 0 :(得分:5)
不,因为local
每次调用都会更改。
闭包的关键是捕获外部函数中的变量。