JavaScript 對象屬性

屬性是任何 JavaScript 對象最重要的部分。

JavaScript 屬性

屬性指的是與 JavaScript 對象相關的值。

JavaScript 對象是無序屬性的集合。

屬性通常可以被修改、添加和刪除,但是某些屬性是只讀的。

訪問 JavaScript 屬性

訪問對象屬性的語法是:

objectName.property           // person.age

或者:

objectName["property"]       // person["age"]

或者:

objectName[expression]       // x = "age"; person[x]

表達式必須計算為屬性名。

例子 1

person.firstname + " is " + person.age + " years old.";

親自試一試

例子 2

person["firstname"] + " is " + person["age"] + " years old.";

親自試一試

JavaScript for...in 循環

JavaScript for...in 語句遍歷對象的屬性。

語法

for (variable in object) {
    要執行的代碼
}

for...in 循環中的代碼塊會為每個屬性執行一次。

循環對象的屬性:

實例

var person = {fname:"Bill", lname:"Gates", age:62}; 
for (x in person) {
    txt += person[x];
}

親自試一試

添加新屬性

您可以通過簡單的賦值,向已存在的對象添加新屬性。

假設 person 對象已存在 - 那么您可以為其添加新屬性:

實例

person.nationality = "English";

親自試一試

您不能使用預留詞作為屬性名(或方法名)。請使用 JavaScript 命名規則。

刪除屬性

delete 關鍵詞從對象中刪除屬性:

實例

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
delete person.age;   // 或 delete person["age"];

親自試一試

delete 關鍵詞會同時刪除屬性的值和屬性本身。

刪除完成后,屬性在被添加回來之前是無法使用的。

delete 操作符被設計用于對象屬性。它對變量或函數沒有影響。

delete 操作符不應被用于預定義的 JavaScript 對象屬性。這樣做會使應用程序崩潰。

屬性值

所有屬性都有名稱。此外它們還有值。

值是屬性的特性之一。

其他特性包括:可列舉、可配置、可寫。

這些特性定義了屬性被訪問的方式(是可讀的還是可寫的?)

在 JavaScript 中,所有屬性都是可讀的,但是只有值是可修改的(只有當屬性為可寫時)。

(ECMAScript 5 擁有獲取和設置所有屬性特性的方法)

原型屬性

JavaScript 對象繼承了它們的原型的屬性。

delete 關鍵詞不會刪除被繼承的屬性,但是如果您刪除了某個原型屬性,則將影響到所有從原型繼承的對象。