3.5.2 词法环境

Keywords:

Next: ,Previous: Global environment,Up: Scope of variables

3.5.2 词法环境

对任何函数的调用都会创建一个框架(frame)。该框架包括函数中创建的局部变量,以及在一个环境中求值时组合创建的新环境。

注意以下术语:框架指的是一组变量的集合,环境则是一组框架的嵌套(或者说:内部框架加上外围环境)。

环境可以赋给变量或包含在其它对象里面。但是,没有标准的对象 — 特别是,它们在赋值的时候不会进行拷贝。

闭包(closure;"function"模式)对象含定义时就作为它的一部分的环境(默认情况下,环境可以用 environment<- 来操作)。当函数随后被调用时,它的求值环境是以闭包的环境作为外围创建。注意,对于调用者的环境没有这样的必要。

因此,当需要一个函数中的变量时,首先在求值环境中搜索,然后再外围,外围的外围,等等;一旦达到全局环境或一个包的环境,搜索路径会继续延伸到基本包的环境。如果仍然没有发现对象,搜索会随后在空环境中进行,并且会失败。

Hits:Loading...

special topic