• 简单理解闭包;


    闭包:函数在调用的时候,会形成一个私有作用域,内部的变量不会被外面访问,这种保护机制叫做闭包;

    (这个时候我们需要注意的是:函数调用完毕,这个函数形成的栈内存会被销毁)

    通过一个案例来看一下:

    function fn(){

      var a=12;

      a++;

      console。log(a)

    fn()

    当调用这个函数的时候,这个函数会开辟一个新的私有作用域,它里面声明的变量不会被window访问到,并且,函数

    调用完之后,这个函数形成的栈内存也就是包括里面的变量就会被销毁;

    但是有些时候我们不希望他的栈内存被销毁,还想使用它,这时候也涉及到函数的另一个知识点(函数归属谁跟他在哪里调用没有关系,跟在哪里定义有关

    关于函数的栈内存不想被销毁的小案例:

    function fn(){

      var a=13;

      return function (){

        a++

        console.log(a)

      }

    }

    var ss=fn()

    ss()

    在函数中你返回什么就是什么,在这个案例中,这个函数的返回值就是你想执行的函数,所有你一直调用它的时候,并不是调用函数里的内容,而是他的返回值

    所以就解决了闭包的问题

  • 相关阅读:
    次小生成树(SST)
    传纸条(scrip)
    动态规划练习5
    动态规划练习4
    整数的lqp拆分
    [HNOI2002]跳蚤
    BZOJ1803: Spoj1487 Query on a tree III
    51nod-1526: 分配笔名
    51nod-1615: 跳跃的杰克
    BZOJ2588: Spoj 10628. Count on a tree
  • 原文地址:https://www.cnblogs.com/qinlinkun/p/10036174.html
Copyright © 2020-2023  润新知