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

Posted adhehe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript基础概念之----闭包相关的知识,希望对你有一定的参考价值。

闭包 是由作用域链引起的。

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

var my = parent();
my();//输出‘hello‘,因为返回的函数可以通过作用域链访问a

如上代码:

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

因为匿名函数被定义在parent函数内部,因此,它被调用后仍然能够访问parent函数的作用域。这就是闭包。

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

var my = myfunc(‘hello‘)
my.myMethod(); //返回 hello

 

以上是关于JavaScript基础概念之----闭包的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript之闭包

JavaScript设计模式基础之闭包(终)

Vue之JavaScript基础

JavaScript之闭包

JavaScript之作用域与闭包详解

JavaScript 精粹 基础 进阶函数和作用域(闭包作用域)