zoukankan      html  css  js  c++  java
  • JS面向对象--你真的理解闭包了吗?

    JS中的闭包,可能在实际开发中我们用的很少,但是面试的时候是必问的。
    所以今儿个总结一下什么是闭包。

    首先,我们定义一个变量。会分为两种情况,1是定义在全局中,我们关闭程序的时候变量会从内存中释放。2是定义在局部中,在函数中定义一个变量,当我函数调用结束后,会从内存中释放。

    闭包的存在,就是为了当我调用了声明局部变量的函数后,我的局部变量还能存在在全局之中。延长了我局部变量的生命周期。

    接下来简单写一个闭包~~

    function aaa(){
       var a =10
        function bbb(){
          console.log(a)   
       }
      return bbb
    }
    
    var num = aaa()
    num()
    

      

    那么是怎么判断一个程序中有闭包呢?
    1.是否有外层函数和内层函数 eg:aaa() bbb()
    2.外层函数是否有局部变量 eg: var a =10
    3.内层函数是否操作了外层函数的局部变量 eg:console.log(a)
    4.内层函数是否和外面产生了关联 eg: return bbb

    感谢大家看到这里,希望这篇文章对大家都有帮助~~~

  • 相关阅读:
    7-30-组队赛
    POJ 3125 Printer Queue
    7-28-比赛
    POJ 3922 A simple stone game
    POJ 1845
    第一次组队训练
    I-number
    Radar Installation
    Robots on a grid(DP+bfs())
    Dividing a Chocolate(zoj 2705)
  • 原文地址:https://www.cnblogs.com/JiAyInNnNn/p/11070274.html
Copyright © 2011-2022 走看看