3.5.2 词法环境
Next: Stacks,Previous: Global environment,Up: Scope of variables
3.5.2 词法环境
对任何函数的调用都会创建一个框架(frame)。该框架包括函数中创建的局部变量,以及在一个环境中求值时组合创建的新环境。
注意以下术语:框架指的是一组变量的集合,环境则是一组框架的嵌套(或者说:内部框架加上外围环境)。
环境可以赋给变量或包含在其它对象里面。但是,没有标准的对象 — 特别是,它们在赋值的时候不会进行拷贝。
闭包(closure;"function"模式)对象含定义时就作为它的一部分的环境(默认情况下,环境可以用 environment<- 来操作)。当函数随后被调用时,它的求值环境是以闭包的环境作为外围创建。注意,对于调用者的环境没有这样的必要。
因此,当需要一个函数中的变量时,首先在求值环境中搜索,然后再外围,外围的外围,等等;一旦达到全局环境或一个包的环境,搜索路径会继续延伸到基本包的环境。如果仍然没有发现对象,搜索会随后在空环境中进行,并且会失败。
Hits:Loading...
- Previous Page: 3.5.1 全局环境
- Next Page: 3.5.3 调用堆栈
