引用規(guī)范類型

2018-06-16 15:05 更新

引用類型用來說明 delete,typeof,賦值運(yùn)算符這些運(yùn)算符的行為。例如,在賦值運(yùn)算中左邊的操作數(shù)期望產(chǎn)生一個(gè)引用。通過賦值運(yùn)算符左側(cè)運(yùn)算子的語法案例分析可以但不能完全解釋賦值行為,還有個(gè)難點(diǎn):函數(shù)調(diào)用允許返回引用。承認(rèn)這種可能性純粹是為了宿主對(duì)象。本規(guī)范沒有定義返回引用的內(nèi)置 ECMAScript 函數(shù),并且也不提供返回引用的用戶定義函數(shù)。(另一個(gè)不使用語法案列分析的原因是,那樣將會(huì)影響規(guī)范的很多地方,冗長(zhǎng)并且別扭。)


一個(gè) 引用 (Reference) 是個(gè)已解決的命名綁定。一個(gè)引用由三部分組成, 基 (base) 值, 引用名稱(referenced name) 和布爾值 嚴(yán)格引用 (strict reference) 標(biāo)志?;凳?undefined, 一個(gè) Object, 一個(gè) Boolean, 一個(gè) String, 一個(gè) Number, 一個(gè) environment record 中的任意一個(gè)?;凳?undefined 表示此引用可以不解決一個(gè)綁定。引用名稱是一個(gè)字符串。


本規(guī)范中使用以下抽象操作接近引用的組件:

  • GetBase(V)。 返回引用值 V 的基值組件。
  • GetReferencedName(V)。 返回引用值 V 的引用名稱組件。
  • IsStrictReference(V)。 返回引用值 V 的嚴(yán)格引用組件。
  • HasPrimitiveBase(V)。 如果基值是 Boolean, String, Number,那么返回 true。
  • IsPropertyReference(V)。 如果基值是個(gè)對(duì)象或 HasPrimitiveBase(V) 是 true,那么返回 true;否則返回 false。
  • IsUnresolvableReference(V)。 如果基值是 undefined 那么返回 true,否則返回 false。


本規(guī)范使用以下抽象操作來操作引用:


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)