如何理解JS中闭包的概念

Javascript中的闭包是比较难的概念,本文截取部分自JavaScript面向对象编程指南的内容,对闭包的概念进行解释。

在了解闭包之前,首先要熟悉作用域链,因为闭包的出现是为了突破作用域链。

作用域链

如果我们在一个外部函数outer()中嵌套了一个内部函数inner(),那么在inner()中可以访问的变量既来自于它自身的作用域,也可以来自其父级的作用域,这样就形成了一个作用域链。

var global = 1; function outer () { var outer_local = 2; function inner() { var inner_local = 3; ruturn inner_local + outer_local + global; } return inner(); } // 执行 > outer(); > 6  ...  阅读全文