函数

函数在调用的时候,会形成一个私有作用域,内部的变量不会被外面访问,这种保护机制叫闭包。这2就是意味着函数调用完毕,这个函数形成的栈内存会被销毁。

  function fn(){

    var a = 12;

     a++;

    console.log(a)

  }

  fn()

  fn()

  fn()

但有时候外面不希望他被销毁

   函数归属谁跟它在哪调用没有关系,跟在哪定义有关

fu()调用完毕后得到的是一个匿名函数,但是这个函数在fn这个作用域下定义,所以这个匿名函数内部的变量在fn作用域下查找,这种写法可以使函数内部的变量不被销毁。

 

原文地址:https://www.cnblogs.com/dmzzyc/p/9910845.html