什么是闭包?闭包的作用是什么?有什么缺点?

162 阅读1分钟

什么是闭包?

通过将作用域嵌套实现将局部变量进化成私有变量的环境,叫做闭包。
当一个外部函数访问在这个函数内部定义的局部变量,就需要在一个函数内部再定义一个函数,通过return返回到函数外部,从而实现我们的需求,这个过程就形成了闭包。

闭包的应用

1、设计模式中的单例模式
2、for循环中i的操作
3、防抖和节流
4、函数柯里化

闭包的作用是什么?

延长变量作用域、在函数外部可以访问函数内部的局部变量;避免全局变量的污染,避免命名冲突;解决循环绑定引发的索引问题;可以使函数内部的变量不会被垃圾回收机制回收。

 function fn(){
     var num=10;
     funcction fun(){
     console.log(num);
     }
     return fun;
  }
  var f=fn()
  f()

闭包的缺点是什么?

容易造成内存泄漏,因为闭包中额局部变量永远不会被回收