简单的闭包
程序员文章站
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的副本,而且只有它们自己能对其进行修改。这就是闭包的一个简单的例子。
上一篇: 世界十大名贵马,最贵的纯血马售价超过四亿