为什么此代码返回43
作为结果,我希望它得到42
的结果。代码如下:
function say667() {
// Local variable that ends up within closure
var num = 42;
var say = function() { console.log(num); }
num++;
return say;
}
var sayNumber = say667();
sayNumber();
答案 0 :(得分:4)
您已经关闭了变量 num
,而不是定义函数时变量具有的值。
这是事件的顺序:
num
num
增至43 sayNumber
num
的值,即43