什么是闭包简述

175 阅读1分钟

什么是闭包呢,我们知道局部变量一般是在自己的作用域中才被访问,那么闭包就是一个作用域访问外层函数的局部变量。

也可以这样理解: 本质就是上级作用域内变量的生命周期,因为被下级作用域内引用,而没有被释放。就导致上级作用域内的变量,等到下级作用域执行完以后才正常得到释放

例如在定时器中

var a = 0 
function foo(){ 
   var b =14 
   function fo(){ 
   console.log(a, b) }
   fo()
} 
foo()
// 0 ,14

这里的子函数 fo 内存就存在外部作用域的引用 a, b,所以这就会产生闭包