6.2.3 规范类型参考
注意:引用类型用于解释这样的操作符的行为,如 delete,typeof 以及赋值运算符、super 关键字和其他语言特性。 例如,一个赋值的左边操作数期望产生一个引用。
引用是已解析的名称或属性绑定。 引用由三个组件组成,基本值组件,引用的名称组件和布尔值严格引用标志。 基本值组件是 undefined、Object、Boolean、String、Symbol、Number或环境记录(Environment Record)。 undefined 的基值组件表示无法将引用解析为绑定。 引用的名称组件是 String 或 Symbol 值。
超级引用(Super Reference)是一个引用,用于表示使用 super 关键字表示的名称绑定。 超级引用有一个额外的 thisValue 组件,其基值组件永远不会是环境记录。
在本规范中使用以下抽象操作来访问引用的组件:
GetBase(V)。返回引用 V 的基值组件。
GetReferencedName(V)。返回引用的引用名称组件 V。
IsStrictReference(V)。返回引用V的严格引用标志。
HasPrimitiveBase(V)。如果 Type(V的基值组件)是 Boolean、String、Symbol 或 Number,则返回 true。
IsPropertyReference(V)。如果引用 V 的基本值组件是对象或 HasPrimitiveBase(V)为true,则返回 true;否则返回false。
IsUnresolvableReference(V)。如果引用 V 的基值组件为 undefined,则返回true;否则返回 false。
IsSuperReference(V)。如果引用 V 具有 thisValue 组件,则返回 true。
在本规范中使用以下抽象操作来操作引用: