ECMAScript | Модульная Запись Среды | Метод GetBindingValue ( N, S )

GetBindingValue ( N, S )

Конкретный метод GetBindingValue (Получить значение привязки), модульной записи среды envRec принимает аргументы N (строка) и S (логическое значение). Он возвращает значение своего связанного идентификатора, имя которого является значением аргумента N. Однако, если привязка является косвенной привязкой, возвращается значение целевой привязки. Если привязка существует, но не инициализирована, выдается ошибка ReferenceError. При вызове он выполняет следующие шаги:

1. Утверждено: S является true.
2. Утверждено: envRec имеет привязку к N.
3. Если привязка для N является косвенной привязкой, то
   a. Пусть M и N2 будут значениями косвенного обращения, предоставленными при создании этой привязки для N.
   b. Пусть targetEnv будет M.[[Environment]].
   c. Если targetEnv не определен (является undefined), выбросить исключение ReferenceError.
   d. Вернуть ? targetEnv.GetBindingValue(N2, true).
4. Если привязка для N в envRec является неинициализированной привязкой, вызовите исключение ReferenceError.
5. Вернуть значение, привязанное к N в envRec.
Примечание

S всегда будет истинным true, потому что Модуль (Module) всегда является кодом в строгом режиме.

Информационные ссылки

ECMAScript | Модульные записи среды

Стандарт ECMAScript — Раздел «9.1.1.5 Module Environment Records» — https://tc39.es/ecma262/#sec-module-environment-records

Стандарт ECMAScript — Раздел «9.1.1.5.1 GetBindingValue ( N, S )» — https://tc39.es/ecma262/#sec-module-environment-records-getbindingvalue-n-s

Поделись записью