js 闭包

原文地址

http://www.cnblogs.com/uedt/archive/2010/10/28/1863389.html

当闭包被外部引用时,如果内部函数使用了外部函数的变量,那么外部函数调用结束,这些变量在内存不会被 释放,因为闭包需要它们

例如

[pcsh lang="js" tab_size="4" message="" hl_lines="" provider="manual"]

function outerFun()
{
    var a = 0;
    function innerFun()
    {
        a++;
    }
    return innerFun;  //注意这里
}
var obj=outerFun();
obj();  //结果为1
obj();  //结果为2
var obj2=outerFun();
obj2();  //结果为1
obj2();  //结果为2

[/pcsh]

 

此处评论已关闭