一、存在的意义
创建一个常驻内存的局部变量和方法(js语言机制会销毁运行过的局部变量),并避免全局变量的污染。
二、如何实现一个闭包
函数包含函数,内函数引用外函数的局部变量,延长了这个局部变量的生命周期。在外部重复调用时,并能实现累加。
三、缺点
内存常量,操作不当可能会引起内存泄漏。 不需要了应这样清除内存 fun = null
四、DEMO
function abc() {
var a = 1;
return function () {
a++;
return a;
}
}
var fun = abc();
fun() // 相当于abc()() 2
fun() // 3