前端面试:什么是闭包?闭包的好处是什么,坏处是什么?

摘要:好处: 其实,在函数外部我们想获取函数内部的变量,数据这些,是无法获取到的,而闭包正好满足了这一点。所以,闭包最大的好处就是,能够在函数外部获取到函数内部的私有数据,这些变量和数据会一直存在函数中

一个简单的闭包如下:

function a(){
  var i=10;
  return function b(){
    console.log(i)
  }
}
var c=a();//运行此处返回的是b函数
c();//执行b函数

从此处可以看出,其实闭包一句话总结就是:函数嵌套函数,然后外部函数能够获取到函数内部的私有数据;

那么闭包的好处是什么呢?


好处: 

其实,在函数外部我们想获取函数内部的变量,数据这些,是无法获取到的,而闭包正好满足了这一点。所以,闭包最大的好处就是,能够在函数外部获取到函数内部的私有数据,这些变量和数据会一直存在函数中,不会在调用函数之后被垃圾回收机制回收。


坏处:

而由于函数的私有数据会一直存在内存中,这也将导致内存过多,内存消耗大造成内存泄漏

所以,我们不应该滥用闭包,而为了解决这一缺点,我们可以在退出函数之前,将局部变量删除掉


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_8749