JavaScript 闭包
闭包的定义
一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组合就是闭包(closure)。也就是说,闭包让你可以在一个内层函数中访问到其外层函数的作用域。在 JavaScript 中,每当创建一个函数,闭包就会在函数创建的同时被创建出来。
Closure 被翻译为“闭包”,它是 Theoritical computer science 里出的术语:不引用外部变量的 lambda 表达式是「封闭的」(Closed),那么把「开放的」表达式「封闭住」的东西,就是 Closure 了。