编程知识梳理-闭包

javascript中的闭包简单的概念:
外部方法包含内部方法,内部方法可以访问外部方法的局部变量,并且在外部方法结束的时候返回内部方法对象。
因此在代码执行过程中如果在方法作用域外部引用了外部方法对象,那即使外部方法运行结束,外部方法对象也不会被GC回收。
因为外部对象返回的内部对象还持有着该外部对象的变量。
代码如下:

function Outer(){  
    var i=0;  
    function Inner(){  
        alert(++i);  
    }  
    return Inner;  
}  
var inner = Outer();  
inner();  
var quo = function (status) {
    return {
        get_status: function ( ) {
            return status;
        }
    };
};
// Make an instance of quo.
var myQuo = quo("amazed");
document.writeln(myQuo.get_status( ));

Java闭包的概念:
http://blog.csdn.net/qq_23589445/article/details/49560907

你可能感兴趣的:(编程知识梳理-闭包)