首先,我们需要声明一个全局函数的占位符。尽管这种占位符不是必须的,但最好还是声明一下,然后我们重新将函数F()定义一下:
var inner;var F = fucntion(){ var b = 'local variable'; var N = function(){ return b; } inner = N;}F();
这个例子的最终结果与之前相同,但在实现方法上有些许不同。这里F()不再返回函数了,而是在函数体内创建了新的全局函数inner();
我们在F()中定义了一个新的函数N,并将它赋值给了全局变量inner,由于N()是在函数F()内部定义的,因此可以访问F的作用域,所以N()最终升级成为了全局函数但她仍然可以访问全局变量F();
这也可以利用闭包突破作用于链!!!!
两个例子过后,读者应该体会到神马是闭包了吧!! \(^o^)/YES!
那么请点开下一张吧