1、何为闭包
闭包简单总结就是:内层函数引用外层函数中变量,这些变量的集合就是闭包。
形成闭包的条件:
- 函数嵌套
- 内部函数引用外部函数的变量
闭包的应用场景:将内部的函数返回到外部去。
对闭包形成以及应用的示例代码如下(下面的代码是实现了一个经典的计时器):
const closure = () => {
// 补全代码
let i=1;
return function() {
return i++;
}
};
// test
const test = closure();
console.log(test()); // 1
console.log(test()); // 2
console.log(test()); // 3
const test2 = closure();
console.log(test2()); // 1
console.log(test2()); // 2
console.log(test2()); // 3
2、闭包总结
闭包的优缺点
- 优点:延长外部函数局部变量的生命周期。
- 缺点:优点也是缺点,本应被销毁的变量,因为闭包的原因没有被销毁,长期存在的话,容易造成内存泄漏。
所以请注意合理使用闭包, 然后在使用完闭包要及时清除(销毁), 避免内存泄露。
闭包的用处
关于闭包的用处的问题简单总结如下:
- 闭包解决的问题: 变量使用
- 带来的问题: 内存泄露
- 经典用途: 节流防抖, 可见此: https://blog.nowcoder.net/n/d76b43de8cd541f1b69594a1be411e8a