在了解js的闭包之前,至少需要了解作用域、作用域链。
js中,变量是以函数作为作用域的,在某函数内定义的所有变量在该函数外是不可见的。
如果在一个函数中定义了一个内部函数,那么该内部函数的变量即来自它自身的作用域,也可以来自其“父级”作用域。
下图所示内容是我对闭包的理解与浅析,是在看完书籍《JavaScript面向对象编程指南(第2版)》中介绍的闭包后的自我总结。