在JavaScript中創(chuàng)建一個(gè)object:
var objectName = {
objProperty1 : value,
objProperty2 : value,
objProperty3 : value,
};
說(shuō)明: 用聲明變量的方法來(lái)聲明一個(gè)對(duì)象鸣奔,等號(hào)右邊使用大括號(hào)包括,
并在里面填寫對(duì)象特有的屬性及方法惩阶,上面的小例子并沒(méi)有寫方法
【因?yàn)槲疫€在屬性這個(gè)階段挎狸,不過(guò),有了Java編程基礎(chǔ)之后断楷,個(gè)人認(rèn)為
繼續(xù)下去不難】锨匆,要細(xì)心留意的一點(diǎn)是:
屬性名 冒號(hào) 屬性值 逗號(hào)。
最后在整個(gè)代碼片段以分號(hào)結(jié)束冬筒。
創(chuàng)建一個(gè)沒(méi)有屬性的對(duì)象恐锣?
Just like :
var obj = {
// 不寫任何屬性。
};
我為什么要去創(chuàng)建一個(gè)空的對(duì)象舞痰?
靈活一點(diǎn)是嗎土榴?
【問(wèn)題】創(chuàng)建了空對(duì)象后,要如何去使用响牛?-->> 添加屬性和刪除屬性
【回答】
var obj = {};
console.log("創(chuàng)建了一個(gè)空對(duì)象玷禽,現(xiàn)在測(cè)試開(kāi)始...");
obj.color = "red";
obj.state = false;
console.log(obj.color + " " + obj.state);
console.log("刪除屬性state...");
delete obj.state;
console.log(obj.color + " " + obj.state);
直接給不存在的對(duì)象屬性賦值赫段,便可以使用。<br>
對(duì)于一個(gè)不存在的對(duì)象屬性矢赁,直接訪問(wèn)或?qū)⒌玫揭粋€(gè)undefined的結(jié)果糯笙。
<font color = red>刪除屬性刪除的是屬性本身,所以當(dāng)屬性被刪除后撩银,繼續(xù)訪問(wèn)該屬性是錯(cuò)誤的给涕,不符合邏輯的。</font>
【問(wèn)題】JS對(duì)象去訪問(wèn)一個(gè)不存在的屬性會(huì)得到一個(gè)什么結(jié)果额获?
【回答】答:一個(gè)undefined的結(jié)果如果去訪問(wèn)一個(gè)不存在的屬性稠炬。
【問(wèn)題】在類中,如果我放了一個(gè)逗號(hào)在最后一個(gè)屬性后面咪啡,會(huì)發(fā)生什么結(jié)果首启?
【回答】_在大多瀏覽器中,一般都不會(huì)報(bào)錯(cuò)撤摸,但是在版本較老的瀏覽器中可能會(huì)只執(zhí)行到它之前的語(yǔ)句毅桃。
【問(wèn)題】我能通過(guò)console.log
語(yǔ)句將一個(gè)object在控制臺(tái)console中顯示出來(lái)嗎?
【回答】Yes, you can.
<font color = red>一個(gè)變量并不能實(shí)際上地存儲(chǔ)一個(gè)對(duì)象object准夷,而是存儲(chǔ)一個(gè)reference钥飞,指向object.</font>
我們現(xiàn)在知道創(chuàng)建一個(gè)對(duì)象可以通過(guò)```var obj = {...}```,
但是obj本身存儲(chǔ)的并不是這個(gè)對(duì)象```obj```本身衫嵌,
而是一個(gè)指向```對(duì)象本身```的指針變量读宙。
【問(wèn)題】只要是一個(gè)對(duì)象,那么這個(gè)對(duì)象就可以擁有屬性和行為楔绞,然而结闸,我們學(xué)會(huì)了如何為對(duì)象添加屬性,但是酒朵,要如何給對(duì)象添加行為behavior呢桦锄?
【回答】
var dog = {
color:yellow,
legs:4, // 注意屬性與屬性之間由逗號(hào)隔開(kāi)
/* 下面為dog對(duì)象添加行為,我們可以看到蔫耽,聲明function中结耀,并沒(méi)有函數(shù)名,但是我們可以通過(guò)dog對(duì)象的shoutting屬性找到這個(gè)function */
shoutting : function () {
console.log("wang...wangwangwang....");
}
}
【說(shuō)明】將對(duì)象屬性名與匿名函數(shù)綁在一起匙铡,就成為對(duì)象的方法了图甜。
【問(wèn)題】上面演示了如何為object,對(duì)象添加其本身的動(dòng)作行為鳖眼,那我們?nèi)绾蝸?lái)使對(duì)象的行為激活呢黑毅?
【回答】其實(shí),這個(gè)就和Java語(yǔ)言很相似了具帮,我們可以通過(guò)"."符號(hào)來(lái)使連接對(duì)象與function博肋,話多無(wú)益低斋,例子最實(shí)際,下面一起來(lái)看看吧匪凡!
var dog = {
color:yellow,
legs:4, // 注意屬性與屬性之間由逗號(hào)隔開(kāi)
/* 下面為dog對(duì)象添加行為膊畴,我們可以看到,聲明function中病游,并沒(méi)有函數(shù)名唇跨,但是我們可以通過(guò)dog對(duì)象的shoutting屬性找到這個(gè)function */
shoutting : function () {
console.log("wang...wangwangwang....");
}
}
dog.shoutting(); // 通過(guò)"對(duì)象名.屬性名"來(lái)使對(duì)象動(dòng)起來(lái),其中屬性名也相當(dāng)于是對(duì)象的方法名吧衬衬!
【說(shuō)明】對(duì)象名.方法屬性名()买猖,可以調(diào)用到對(duì)象的方法