什么是闭包
闭包:有权访问其他函数内部变量的函数。本质上是连接函数内部与外部的一座桥梁。
以下代码就产生了闭包
function fn1() {
let a = 1;
function fn2() {
console.log(a);
}
fn2();
}
fn1();
1.什么情况下会产生闭包?
- 函数嵌套函数
- 内部函数使用外部函数的变量
- 调用外部函数
2.闭包的作用:
- 延长了局部变量的生命周期
- 在外部控制局部变量
3.闭包的缺点:
- 局部变量会长期驻留在内存中,可能会造成内存泄漏(IE9以下)
4.解决闭包带来的缺点:
- 减少使用闭包
- 及时释放