Property 特性

2018-06-16 15:02 更新

本規(guī)范中的特性(Attributes)用于定義和解釋命名屬性(properties)的狀態(tài)。命名的數(shù)據(jù)屬性由一個(gè)名字關(guān)聯(lián)到一個(gè)下表中列出的特性 (attributes)

表5——命名的數(shù)據(jù)屬性的特性
特性名稱取值范圍描述
[[Value]]任何 ECMAScript 語言類型通過讀 property 來取到該值
[[Writable]]Boolean如果為 false,試圖通過 ECMAScript 代碼 [[Put]] 去改變該屬性的 [[Value]],將會失敗
[[Enumerable]]Boolean如果為 true,則該屬性可被 for-in 枚舉出來(參見 12.6.4),否則,該屬性不可枚舉。
[[Configurable]]Boolean如果為 false,試圖刪除該屬性,改變該屬性為訪問器屬性,或改變它的 attributes(和 [[Value]] 不同),都會失敗。

 命名的訪問器屬性由一個(gè)名字關(guān)聯(lián)到一個(gè)下表中列出的特性 (attributes)


表6——命名的訪問器屬性的特性
特性名稱取值范圍描述
[[Get]]Object 或 Undefined如果該值為一個(gè) Object 對象,那么它必須是一個(gè)函數(shù)對象。每次有對該屬性進(jìn)行 get 訪問時(shí),該函數(shù)的內(nèi)部方法 [[Call]](8.6.2)會被一個(gè)空參數(shù)列表調(diào)用,以返回該屬性值
[[Set]]Object 或 Undefined如果該值為一個(gè) Object 對象,那么它必須是一個(gè)函數(shù)對象。每次有對該屬性進(jìn)行 set 訪問時(shí),該函數(shù)的內(nèi)部方法 [[Call]](8.6.2)會被一個(gè)參數(shù)列表調(diào)用,這個(gè)參數(shù)列表包含分配的值作為唯一的參數(shù)。property 的內(nèi)部方法 [[Set]] 產(chǎn)生的影響可能會,但不是必須的,對隨后的 property 內(nèi)部方法 [[Get]] 的調(diào)用返回結(jié)果產(chǎn)生影響。
[[Enumerable]]Boolean如果為 true,則該屬性可被 for-in 枚舉出來(參見 12.6.4),否則,該屬性不可枚舉。
[[Configurable]]Boolean如果為 false,試圖刪除該屬性,改變該屬性為訪問器屬性,或改變它的 attributes(和 [[Value]] 不同),都會失敗。

 如果某個(gè)命名屬性的特性值沒有在此規(guī)范中明確給出,那么它的默認(rèn)值將使用下表的定義。


表7——默認(rèn)特性值
特性名稱默認(rèn)值
[[Value]]undefined
[[Get]]undefined
[[Set]]undefined
[[Writable]]false
[[Enumerable]]false
[[Configurable]]false


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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號