JS闭包

什么是闭包 ?

  1、要想理解闭包,首先要理解Javascript中特殊变量的作用域。

  2、如何从外部读取函数的内部变量?

function test() {
  var num = '88888';
  function test2() {
     console.log(num)  
  }    
}

  在上述代码中 我们会发现,test2函数包含在test函数中,test中的所有局部变量对test2是可见的,但是test2中的局部变量对test函数是不可见的。

       此时的test2函数就是闭包。

  理解了下方这句话,基本就可以理解闭包了。

  Javascript中函数运行在被定义的作用域里,而并不是被执行的作用域里。

使用闭包需要注意的点:

  1、闭包中使用的函数的变量都保存在内存中,内存消耗大,避免滥用闭包,会造成网页的性能问题。 解决

  解决方法:在退出函数之前,将不使用的局部变量全部清除

  2、闭包会在父函数外边,改变父函数的值, 需要注意的是,不要随便更改父函数的值。

猜你喜欢

转载自www.cnblogs.com/AmbiguousMiao/p/8981212.html