ECMAScript(ECMA-262 5.1)中“引用”的“基值”是什么

What is `base value` of `reference` in ECMAScript(ECMA-262 5.1)?

本文关键字:引用 基值 是什么 ECMA-262 ECMAScript      更新时间:2023-09-26

我一直在尝试了解如何在javascript中设置this值,并发现ECMAScript语言规范非常有用。我阅读了第8.7节reference specification type,发现ECMAScript中的参考由base valuereferenced namestrict reference flag三个组件组成,以理解第11.2.3节。

我可以从它们的名字中假设referenced namestrict reference flag是什么,但我不明白base value是什么。文件中说base valueundefinedStringBooleanNumberObject,但没有说明它是如何设置的以及它是什么。我猜它是类似于上下文对象的东西。有人能解释一下吗?

是的,基值是引用名称所在的上下文。

对于对象属性,这将是对象(参见§8.12 setter/getter操作的对象内部方法)。对于变量,这将是变量环境(§10.2.1环境记录)。对于无法解析的引用(除了提供给typeof时会引发引用错误的内容),这将是undefined

它没有说明如何设置

Reference值仅通过极少数操作构建:

  • 标识符引用表达式,用于解析当前词汇环境(或其父环境之一)中的标识符
  • 属性访问器表达式,即.…[…]运算符
  • 允许对宿主函数的函数调用返回它们,但这并不存在