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

    什么是闭包?

    一个简单的闭包如下:

    function a(){

      var  i=10;

      return function b(){

        console.log(i)

      }

    }

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

    c();//执行b函数

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


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

    好处: 

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

    坏处:

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

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

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

  • 相关阅读:
    第十二周学习进度条
    课堂练习四
    搜狗输入法
    第十一周学习进度条
    《代码大全(第二版)》阅读笔记01
    典型用户及用户场景描述
    第十周学习进度条
    团队冲刺第六天
    团队冲刺第五天
    团队冲刺第四天
  • 原文地址:https://www.cnblogs.com/lxs-616/p/12743184.html
Copyright © 2011-2022 走看看