闭包

过程可以出现在模块的顶层,也可以出现在其他作用域中,在这种情况下,称为嵌套过程。 嵌套过程可以从其封闭的作用域访问局部变量,这就变成了一个闭包。 任何捕获的变量都存储在闭包(它的环境)隐藏附加参数中,并且通过闭包及其封闭作用域的引用来访问它们(即, 对它们进行的任意修改在两个地方都是可见的)。 如果编译器确定这是安全的,则会在堆或栈上分配闭包环境。

在循环中创建闭包

由于闭包通过引用来捕获局部变量,这种行为往往在循环体内部并不友好。 参阅 closureScopecapture 来了解如何改变这种行为。