對(duì)象
對(duì)象的概念:對(duì)象是一個(gè)復(fù)雜的數(shù)據(jù),是在一個(gè)大的內(nèi)存空間中养距,存儲(chǔ)多個(gè)小的內(nèi)存空間。
定義對(duì)象
var obj = {
name:"張三",
age:12
}
對(duì)象中的值是由鍵值對(duì)組成的汇荐,而鍵值對(duì)是指在描述一個(gè)事物的時(shí)候,需要一個(gè)名字盆繁,對(duì)應(yīng)一個(gè)值掀淘,例如:
姓名:張三 // 姓名是鍵,張三是值
width:100px // width是鍵油昂,100px是值
border=1 // border是鍵革娄,1是值
定義有數(shù)據(jù)的對(duì)象,鍵和值之間使用冒號(hào)隔開(kāi)冕碟,鍵值對(duì)之間使用逗號(hào)隔開(kāi):
var obj = {
name:"張三",
age:12
}
對(duì)象中的鍵值對(duì)沒(méi)有上限拦惋,可以有任意多個(gè)。對(duì)象中的鍵都是字符串安寺,只是正常情況下可以省略引號(hào)厕妖,但如果鍵中含有連字符就不能省略引號(hào)了。
var obj = {
"name":"張三",
age:12,
height:180,
"province-name":"山東省"
};
console.log(obj);
從輸出的結(jié)果中能看到挑庶,書(shū)寫(xiě)順序和顯示的順序是不同的言秸,因?yàn)閷?duì)象中的鍵值對(duì)是沒(méi)有順序的。
對(duì)象的基本操作
訪(fǎng)問(wèn)對(duì)象中的值:
對(duì)象.鍵 (這種方式屬性名不用加引號(hào))
對(duì)象[鍵] (這種方式屬性名必須加引號(hào))
例如:
var obj = {
name:"張三",
age:12
};
console.log(obj.name);
console.log(obj["age"]);
設(shè)置鍵值對(duì)
對(duì)象.鍵 = 值
對(duì)象[鍵] = 值
如果本來(lái)的對(duì)象中擁有相對(duì)應(yīng)的鍵值對(duì)迎捺,則是修改原來(lái)鍵值對(duì)的值举畸。若原本對(duì)象中不存在這樣的鍵值對(duì),則在對(duì)象中添加所寫(xiě)鍵值對(duì)凳枝。
刪除鍵值對(duì)
delete 對(duì)象.鍵
delete 對(duì)象[鍵]
對(duì)象的遍歷
對(duì)象的遍歷就是將對(duì)象中的每一個(gè)值都訪(fǎng)問(wèn)一次抄沮,他的語(yǔ)法如下:
for(var attr in obj){
# 這里的attr代表對(duì)象屬性名
# obj表示這個(gè)對(duì)象
}
例如:
var obj = {
name:"張三",
age:12,
height:180
};
for(var i in obj){
// 這里的i表示對(duì)象的屬性名,是一個(gè)字符串
console.log(i,obj[i]);
}
注意:遍歷對(duì)象時(shí)岖瑰,輸出對(duì)象中的值叛买,必須使用對(duì)象[代表鍵的變量]這種形式來(lái)輸出。
方法的概念
對(duì)象中值的類(lèi)型是沒(méi)有限制的锭环,可以是任意類(lèi)型聪全。當(dāng)值不是函數(shù)的時(shí)候,我們將這個(gè)鍵值對(duì)叫做對(duì)象的屬性辅辩,當(dāng)值是一個(gè)函數(shù)的時(shí)候难礼,我們將這個(gè)鍵值對(duì)叫做對(duì)象的方法。
var obj2 = {
name:'王五',
study:function(){
console.log("在學(xué)習(xí)");
}
}
console.log(obj2);
name就是對(duì)象obj2的屬性玫锋,study就是對(duì)象obj2方法蛾茉。方法的訪(fǎng)問(wèn)和屬性是一樣的。