JavaScript中的闭包问题

168 阅读1分钟

闭包为什么出现?

       对于一个函数而言,他都有一个自己的作用域,我们可以理解这个作用域是一个有意识的空间a,这个空间里有很多好东西,但对于另一个空间b来说,a里的好东西b是不能够拿到的。那么有什么解决办法呢?那就是b这个空间到a这个空间中去,这样b就能拿到a的好东西了。b也不能待在a的空间里完全的不出来,所以要留一个出来的办法,那就是return

   function a(){
       var a='lsq'
      return function b(){
           console.log(a)
       }
   }
   a()()

       这便是最简单形式的闭包,那么闭包的形成条件就是:将函数内部定义的函数返回到函数外部调用的时候,就产生闭包

       闭包就是为函数获取另一函数内部参数提供方法,本身并不困难,闭包难的地方是在对他的运用上