闭包变量常驻内存
闭包变量常驻内存
by kixi
CSS
/*
清晰网
kixi.com.cn
从javascript开始
*/
JavaScript
function f1(){
var n=999;
nAdd=function(){n+=1}
function f2(){
alert(n);
}
return f2;
}
var result = f1();
result();
nAdd();
result();
/*result实际上就是闭包f2函数,它一共运行了两次,一次999,一次1000。
f1是f2的父函数,f2被赋给了一个全局变量,因此f2始终在内存中,而f2依赖f1,所以f1也在内存中。不会被回收。
注意“nAdd=function(){n+=1}”,nAdd前面没有var关键字,因此nAdd是全局变量(请查资料),所以nAdd可以在外部调用
*/