闭包的问题求高手讲解下

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()()算闭包么,其中内存会不会被释放,还有闭包中的内存什么时候会被释放,只有关闭窗口时才会被释放么?


Cats萌萌
浏览 552回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript