zoukankan      html  css  js  c++  java
  • 经典前端面试必问题:什么是闭包?闭包的好处是什么,坏处是什么?

    什么是闭包?

    一个简单的闭包如下:

    function a(){

      var  i=10;

      return function b(){

        console.log(i)

      }

    }

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

    c();//执行b函数

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


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

    好处: 

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

    坏处:

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

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

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

  • 相关阅读:
    软件工程课堂作业——计算最优惠价格
    团队项目——NABC
    二位数组
    第二次冲刺阶段 站立会议06
    第二阶段冲刺 站立会议05
    第二阶段冲刺 站立会议04
    第二阶段冲刺 站立会议03
    课程建议
    站立会议02
    第二阶段冲刺 站立会议01
  • 原文地址:https://www.cnblogs.com/lxs-616/p/12743184.html
Copyright © 2011-2022 走看看