闭包

闭包(closure)就是定义在函数体内部的函数。更理论性的表达是,闭包是函数与其生成时所在的作用域对象(scope object)的一种结合。

function f() { var c = function (){}; }
上面的代码中,c是定义在函数f内部的函数,就是闭包。
闭包的特点在于,在函数外部可以读取函数的内部变量。
function f() {
    var v = 1;
    var c = function (){
        return v;
    };
    return c;
}
var o = f();
o();
// 1
上面代码表示,原先在函数f外部,我们是没有办法读取内部变量v的。但是,借助闭包c,可以读到这个变量。
 

大家可以猜猜 答案是什么?

 

posted @ 2017-03-02 11:12  quefangfang  阅读(176)  评论(0)    收藏  举报