- 先看一个函数:
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"