欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

经典前端面试必问题:什么是闭包?闭包的好处是什么,坏处是什么?

程序员文章站 2022-06-28 18:38:34
什么是闭包? 一个简单的闭包如下: function a(){ var i=10; return function b(){ console.log(i) } } var c=a();//运行此处返回的是b函数 c();//执行b函数 从此处可以看出,其实闭包一句话总结就是:函数嵌套函数,然后外部函 ......

什么是闭包?

一个简单的闭包如下:

function a(){

  var  i=10;

  return function b(){

    console.log(i)

  }

}

var c=a();//运行此处返回的是b函数

c();//执行b函数

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


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

好处: 

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

坏处:

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

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

这是我个人的一些学习笔记,可能有不对的地方,大神勿喷哈!