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、闭包总结

闭包的优缺点

  • 优点:延长外部函数局部变量的生命周期。
  • 缺点:优点也是缺点,本应被销毁的变量,因为闭包的原因没有被销毁,长期存在的话,容易造成内存泄漏。

所以请注意合理使用闭包, 然后在使用完闭包要及时清除(销毁), 避免内存泄露。

闭包的用处

关于闭包的用处的问题简单总结如下: