什么是闭包?

理解闭包

  • 什么是闭包
    • 闭包是指有权访问作用域中的变量的函数
    • 闭包是一个密闭的容器,类似于set,map容器,用来存储数据
    • 闭包是一个对象,存放数据的格式:key : value
  • 形成的条件:
    1. 在一个函数内又声明了另一个函数,也叫函数嵌套
    2. 内部函数引用外部函数的局部变量
  // 简单的闭包形式 
  function () {
      var count = 0;
      return function () {
          count++
          console.log(count)
      }
   }
  • 闭包的优点: 通常一个函数内声明一个变量后,在执行该函数后内部的变量在函数执行完后也会被销毁,但是使用闭包能够延长外部函数局部变量的声明周期,使得该变量不会被销毁
  • 闭包的缺点:闭包是一把双刃剑,它的优点也是缺点,由于变量不会被销毁,容易造成内存的泄露。
  • 使用的注意点:
  1. 要合理的使用闭包
  2. 用完后要及时的销毁,给使用闭包的匿名函数赋值为null

你可能感兴趣的:(什么是闭包?)