- 先看一个函数:
function f(){var b="b";return function(){return b;}}
这个函数含有一个局部变量b,他在局部空间里是不可见的
>>>b
b is not defined
因为f()的返回值,是另外一个函数,拥有自己的私用空间,同时它可以访问f()的空间和全局空间,所以b对它来说是可见的,有因为f()是可以在全局空间中被调用的(它是一个全局函数),所以我们可以将它的返回值赋给另一个全局变量,从而可以生成一个可以访问f()私有空间的新全局函数
> var n=f();> n();"b"
本文通过一个具体的函数示例解释了闭包的概念及其工作原理。展示了如何定义一个函数f,该函数内部包含一个不可直接访问的局部变量b,并通过返回另一个函数来实现对外部的b值的访问。
129

被折叠的 条评论
为什么被折叠?



