JavaScript基础概念之----闭包

闭包 是由做用域链引发的。闭包

var parent = function(){
    var a = 'hello';
    return function(){
        console.log(a);
    }
}

var my = parent();
my();//输出'hello',由于返回的函数能够经过做用域链访问a

如上代码:函数

定义parent函数,返回一个匿名函数,并从全局做用域调用这个返回的匿名函数。spa

由于匿名函数被定义在parent函数内部,所以,它被调用后仍然可以访问parent函数的做用域。这就是闭包。code

//另外一个例子
var myfunc = function(arg){
    return {
        myMethod:function(){
            return arg;
        }
    }
}

var my = myfunc('hello')
my.myMethod(); //返回 hello
相关文章
相关标签/搜索