屬性(JavaScript)
JavaScript 屬性是物件的成員,它將一個鍵與一個值相關聯。JavaScript 物件是一種資料結構,用於儲存屬性的集合。
屬性由以下部分組成:
- 一個名稱(也稱為鍵),它可以是字串或符號。
- 一個值,可以是任何 JavaScript 值。值是函式的屬性也可以稱為方法。
- 一些特性,它們指定了屬性如何被讀取和寫入。屬性可以具有
configurable、enumerable和writable特性。
訪問器屬性沒有實際的“值”。值透過一對函式間接表示:一個(getter)在讀取值時呼叫,另一個(setter)在設定值時呼叫。然而,訪問器屬性表面上行為像常規資料屬性,因為 getter 和 setter 函式會自動呼叫,並且通常對 JavaScript 程式碼透明。
屬性的值(包括 getter 和 setter)及其特性儲存在一個稱為屬性描述符的資料記錄中。許多方法,例如 Object.getOwnPropertyDescriptor() 和 Object.defineProperty(),都使用屬性描述符。
術語屬性本身不對應任何 JavaScript 值——它是一個抽象概念。例如,在以下程式碼中:
js
const obj = {
a: 1,
b() {},
};
物件 obj 有兩個屬性。第一個屬性的鍵是 "a",值是 1。第二個屬性的鍵是 "b",值是一個函式(使用方法語法)。"a" – 1,"b" – function 的關聯就是物件的屬性。
在類的上下文中,屬性可以分為例項屬性(每個例項擁有)和靜態屬性(由類擁有,儲存所有例項共有的資料)。在繼承的上下文中,屬性還可以分為自有屬性(由物件本身擁有)和繼承屬性(由物件原型鏈中的物件擁有)。
有關讀取和寫入屬性的更多資訊,請參閱使用物件。