欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

简单的闭包

程序员文章站 2022-04-19 10:57:04
...

在javascript中,只有函数具有作用域,也就是说:在一个函数内部声明的变量在函数外部无法访问。

例:

function foo() {
        var a = 10;//变量a定义在函数foo()内部。
          function bar() {
                a *= 2;
                return a;
         }
         return bar;//返回一个内嵌函数
}

//创建 对象
var baz = foo();
baz();//第一次调用,a = 20
baz();//第二次调用,a = 40
baz();//第三次调用,a = 80

var blat = foo();
blat();// return 20

        在上述代码中,所返回的对bar函数的引用被赋给了 baz,这个函数现在在外部被调用,但依然能访问变量a。

       在前面的示例中,baz和blat各有一个a的副本,而且只有它们自己能对其进行修改。这就是闭包的一个简单的例子。

 

相关标签: javascript 闭包