function test(){
var a=0;
var obj={};
obj.fun=function(){
return ++a;
}
return obj.fun
}
var t=test();
//t是一个函数,其内部变量是test函数的引用,test调用完毕t的作用域链不会被销毁
t();
t();
t();
alert(t());//4
test()();
test()();
test()();
alert(test()());//1
//我的理解是test每次调用都会初始化,所以结果都是1,但是test()代表的obj.fun的作用域链不会被删除不知道对不对
我的问题是test()()算闭包么,其中内存会不会被释放,还有闭包中的内存什么时候会被释放,只有关闭窗口时才会被释放么?
相关分类