var a = function(){
var i = 0;
return function(){
++i;
}
}()
a();//1
a();//2
var b = function(){
var i = 0;
return ++i;
}
b();//1
b();//1对于第一个, i 由于被闭包引用所以没被回收,这是可以理解的。但是,对于第二个例子,我们不用闭包的时候之所以i每次都为0是因为每次都运行了var i= 0,这跟回收没关系吧?那怎么理解“函数运行完后变量就被回收”这句话呢?我们定义一个全局变量:var grobal = 10; 它为什么没被回收?
minip
相关分类