面向?qū)ο?Object—oriented,OO)的語(yǔ)言有一個(gè)標(biāo)志,那就是它們都有類的概念,而通過(guò)類可以創(chuàng)建任意多個(gè)具有相同屬性和方法的對(duì)象。前面提到過(guò),EcMAScript中沒有類的概念,因此它的對(duì)象也與基于類的語(yǔ)言中的對(duì)象有所不同。
ECMA一262把對(duì)象定義為:“無(wú)序?qū)傩缘募?,其屬性可以包含基本值、?duì)象或者函數(shù)。”嚴(yán)格來(lái)講,這就相當(dāng)于說(shuō)對(duì)象是一組沒有特定順序的值。對(duì)象的每個(gè)屬性或方法都有一個(gè)名字,而每個(gè)名字
都映射到一個(gè)值。正因?yàn)檫@樣(以及其他將要討論的原因),我們可以把ECMAScr‘ipt的對(duì)象想象成散列表:無(wú)非就是一組名值對(duì),其中值可以是數(shù)據(jù)或函數(shù)。
每個(gè)對(duì)象都是基于一個(gè)引用類型創(chuàng)建的,這個(gè)引用類型可以是第5章討論的原生類型,也可以是開發(fā)人員定義的類型。
南昌網(wǎng)絡(luò)公司技術(shù)人員舉例創(chuàng)建對(duì)象
創(chuàng)建自定義對(duì)象的最簡(jiǎn)單方式就是創(chuàng)建一個(gè)0bject的實(shí)例,然后再為它添加屬性和方法,如下所示:
Var person=new 0bject:();
person.name="Baiheng":
person.age=29;
person.job= "Web software";
pezson.sayName = function(){
alert(this.name);
};
person.sayName();
上面的例子創(chuàng)建了一個(gè)名為person的對(duì)象,并為它添加了三個(gè)屬性(name、age和job)和一個(gè)方法(sayName())。其中,sayName()方法用于顯示this.name(將被解析為:pex-son.name)的值。早期的.JavaScljpt開發(fā)人員經(jīng)常使用這個(gè)模式創(chuàng)建新對(duì)象。但這種方式有個(gè)明顯的缺點(diǎn):使用同一個(gè)接口創(chuàng)建很多對(duì)象,會(huì)產(chǎn)生大量的重復(fù)代碼。為解決這個(gè)問(wèn)題,人們開始使用工廠模式的一種變體。
本文僅限于南昌網(wǎng)站設(shè)計(jì)公司百恒網(wǎng)絡(luò)內(nèi)容技術(shù)人員查看,請(qǐng)勿作其他商業(yè)用途. 文章出自:南昌網(wǎng)絡(luò)公司-百恒網(wǎng)絡(luò) http://www.gimmickmag.com 如轉(zhuǎn)載請(qǐng)注明出處!