JavaScript對象

1.JS對象

對象和數組很相似,數組是通過索引來訪問和修改數據,對象是通過屬性來訪問和修改數據的。
這是一個示例對象:

var cat = {
"name": "Whiskers",
"legs": 4,
"tails": 1,
"enemies": ["Water", "Dogs"]
};

對象適合用來存儲結構化數據,就和真實世界的對象一模一樣,比如一隻貓。

兩種方式訪問對象屬性,一個是點操作符(.),一個是中括號操作符([])
當你知道屬性的名稱的時候,使用點操作符。
這是一個使用點操作符讀取對象屬性的例子:

var myObj = {
prop1: "val1",
prop2: "val2"
};
var prop1val = myObj.prop1; // val1
var prop2val = myObj.prop2; // val2

第二種訪問對象的方式就是中括號操作符([]),如果你想訪問的屬性的名稱有一個空格,這時你只能使用中括號操作符([])。
這是一個使用中括號操作符([])讀取對象屬性的例子:

var myObj = {
"Space Name": "Kirk",
"More Space": "Spock"
};
myObj["Space Name"]; // Kirk
myObj['More Space']; // Spock

//提示:屬性名稱中如果有空格,必須把屬性名稱用單引號或雙引號包裹起來。

中括號操作符的另一個使用方式是用變量來訪問一個屬性。當你需要遍歷對象的屬性列表或查表時,這種方式極爲有用。
這有一個使用變量來訪問屬性的例子:

var someProp = "propName";
var myObj = {
propName: "Some Value"
}
myObj[someProp]; // "Some Value"

還有更多:

var myDog = "Hunter";
var dogs = {
Fido: "Mutt", Hunter: "Doberman", Snoopie: "Beagle"
}
var breed = dogs[myDog];
console.log(breed)// "Doberman"

//提示:當我們通過變量名訪問屬性的時候,不需要給變量名包裹引號。因爲實際上我們使用的是變量的值,而不是變量的名稱

有時檢查一個對象屬性是否存在是非常有用的,我們可以用.hasOwnProperty(propname)方法來檢查對象是否有該屬性。如果有返回true,反之返回 false。
舉例

var myObj = {
top: "hat",
bottom: "pants"
};
myObj.hasOwnProperty("top"); // true
myObj.hasOwnProperty("middle"); // false

我們同樣可以刪除對象的屬性,例如:

delete ourDog.bark;

你也可以像更改屬性一樣給對象添加屬性。
看看我們是如何給ourDog添加 “bark”屬性:

ourDog.bark = "bow-wow"; 

//或者

ourDog["bark"] = "bow-wow";
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章