参考阮一峰:http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
js的变量可以分为 全局变量 和 局部变量。
全局变量:函数内部可以访问到全局变量;
局部变量:函数内部的变量,外部访问不到。
闭包:就是能够读取其他函数内部变量的函数。
最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
例子:
function f1(){ var n=999; function f2(){ alert(n); // 999 } }
var result=f1();
result(); // 999
可以通过调用内部函数,得到内部变量值,这就是闭包。