一、什么是闭包
// (1) 函数内部的子函数
// (2) 通过return把子函数暴露在全局作用域,所以当父函数执行完毕时,子函数并没有被销毁,依然驻留在内存中
// (3) 子函数引用的父函数的局部变量也不会被销毁,可以通过在外部调用子函数来访问局部变量
二、简单的闭包实例:
var a;
function aaa() {
var a = 1;
return function () {
alert(a++);
};
}
a = 8;
var fun = aaa();
fun();
fun();
fun = null;
三、闭包的优点:
(1) 避免全局变量的污染
(2) 局部变量会驻留在内存中,可以通过在外部调用子函数来访问局部变量
四、缺点:
使用不当会造成内存泄露