JavaScript匿名函数及其它一些小问题
function box(){
var num = 0;
return function(){
return num++;
}
}
alert(box()());//0
alert(box()());//0
alert(box()());//0
var a = box();
alert(a());//0
alert(a());//1
alert(a());//2
为什么box()()输出的num不能累加,box()()调用的不是box()中的匿名函数吗?a()输出的num值能够累加,谢谢啊,不太理解。
还有一点,
function box(){
var num = 0;
return function(){
return num++;
}
}
alert(box()())输出的是0
而function box(){
var num = 0;
return function(){
num++;
return num;
}
}
alert(box()())输出的是1
因为编程基础太差了,许多理解不了,谢谢各位大神解答。