闭包就是定义在一个函数内部的函数,通过闭包可以访问外部函数的变量,闭包内部的变量在函数调用后也不会释放
写一个闭包
function f1(){
var a = 100;
function f2(){
alert(a)
}
return f2
}
var res = f1()//声明一个新实例
res()//调用
//输出100
闭包的缺点
- 可能会内存泄漏, 大量变量都保存在闭包里, 导致网页性能不佳, 可以在每次运行完之后, 将无用的局部变量删除
- 闭包会在父函数的外部, 改变父函数内部的值, 如果父函数为object, 闭包为公用函数, 内部变量为私有变量, 则要小心修改父函数内部变量值