首先 我们先看定义一个函数:
var a = "global variable";
var F = function(){
var b = "local variable" ;
var N = function(){
var c = "inner local" ;
return b;
}
return N;
}
函数 F 中包含了局部变量 b ,因此后者在全局空间里是不可见的 。
> b ; // b is not defined
函数 N 有自己的私有空间,同时也可以访问 F() 的空间,所以 b 对它来说是可见的,因为 F() 是可以在全局空间中被调用的 ,( 它是一个全局函数 ),所以我们可以将它的返回值 赋值给另一个全局变量,从而生成一个 可以访问 F() 私有空间的新全局函数 。
var inner = F() ;
> inner() // local variable