8.1.1.5.1 GetBindingValue ( N, S )

模块环境记录的具体环境记录方法 GetBindingValue 返回其绑定标识符的值,其名称为参数 N 的值。但是,如果绑定是间接绑定,则返回目标绑定的值。 如果绑定存在但未初始化,则抛出 ReferenceError

  1. 断言:Strue
  2. 使 envRec 变为调用该方法的模块环境记录。
  3. 断言:envRec N 有绑定。
  4. 如果N的绑定是间接绑定,那么

a. 使 MN2 变为当创建 N 的此绑定时提供的间接值。
b. 使 targetEnv 变为 M.[[Environment]]。

c. 如果 targetEnv undefined,则抛出一个 ReferenceError 错误。

d. 使 targetER 变为 _targetEnv's _EnvironmentRecord。

e. 返回 ? targetER.GetBindingValue(N2, true)。

5.如果 denver 中 N 的绑定是未初始化的绑定,则抛出 ReferenceError 异常。

6.返回当前绑定到 envRec 中的 N 的值。

注意:S 总为 true,因为模块总是严格模式代码。

results matching ""

    No results matching ""