最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript高級(jí)程序設(shè)計(jì) 閱讀筆記(十三) js定義類(lèi)或?qū)ο?/h1>
 更新時(shí)間:2012年08月14日 16:04:46   作者:  
js定義類(lèi)或?qū)ο蟮慕榻B,需要的朋友可以參考下
工廠方式

  創(chuàng)建并返回特定類(lèi)型的對(duì)象?! ?

復(fù)制代碼 代碼如下:

function createCar(sColor,iDoors,iMpg){
var oTempCar=new Object();
oTempCar.color=sColor;
oTempCar.doors=iDoors;
oTempCar.mpg=iMpg;
oTempCar.showColor=function(){
alert(this.color);
}
return oTempCar;
}

  調(diào)用示例:
復(fù)制代碼 代碼如下:

var oCar1=createCar("red",4,23);
var oCar2=createCar("blue",3,25);
oCar1.showColor();
oCar2.showColor();

  缺點(diǎn):方法重復(fù)創(chuàng)建了。如在上面的調(diào)用示例中,oCar1和oCar2均有自己的shoColor方法,但這個(gè)是可以共用的。

構(gòu)造函數(shù)方式

  示例:

復(fù)制代碼 代碼如下:

function Car(sColor,iDoors,iMpg){
this.color=sColor;
this.door=iDoors;
this.mpg=iMpg;
this.showColor=function(){
alert(this.color);
}
}

  調(diào)用示例:
復(fù)制代碼 代碼如下:

var oCar1=new Car("red",4,23);
var oCar2=new Car("blue",3,25);

  缺點(diǎn):跟工廠方式一樣,方法重復(fù)創(chuàng)建了。

原型方式

  本方式利用了對(duì)象的 prototype 屬性,可把它看成創(chuàng)建新對(duì)象所依賴的原型。這里用空構(gòu)造函數(shù)來(lái)設(shè)置類(lèi)名,然后所有的屬性和方法都被直接賦予 prototype 屬性,重寫(xiě)前面的例子,代碼如下:

復(fù)制代碼 代碼如下:

function Car(){
}

Car.prototype.color="red";
Car.prototype.doors=4;
Car.prototype.mpg=23;
Car.prototype.showColor=function(){
alert(this.color);
}


  調(diào)用:
復(fù)制代碼 代碼如下:

var oCar1=new Car();
var oCar2=new Car();

  缺點(diǎn):不能通過(guò)給構(gòu)造函數(shù)傳遞參數(shù)初始化屬性的值

混合的構(gòu)造函數(shù)/原型方式

  聯(lián)合使用構(gòu)造函數(shù)和原型方式,示例如下:

復(fù)制代碼 代碼如下:

function Car(sColor,iDoors,iMpg){
this.color=sColor;
this.door=iDoors;
this.mpg=iMpg;
}

Car.prototype.showColor=function(){
alert(this.color);
}

  調(diào)用示例:
復(fù)制代碼 代碼如下:

var oCar1=new Car("red",4,23);
var oCar2=new Car("blue",3,25);

  優(yōu)點(diǎn):無(wú)內(nèi)存浪費(fèi),創(chuàng)建方便。

  這種方式是ECMAScript采用的主要方式。

動(dòng)態(tài)原型方法

  使用混合的構(gòu)造函數(shù)/原型方式把對(duì)象的方法放在了對(duì)象外面定義,讓人感覺(jué)不是那么面向?qū)ο螅瑳](méi)有在視覺(jué)上進(jìn)行很好的封裝,因此產(chǎn)生了動(dòng)態(tài)原型方法:

復(fù)制代碼 代碼如下:

function Car(sColor,iDoors,iMpg){
this.color=sColor;
this.door=iDoors;
this.mpg=iMpg;
if(typeof Car._initialized=="undefined"){
Car.prototype.showColor=function(){
alert(this.color);
};
Car._initialized=true;
}
}

作者:Artwl
出處:http://artwl.cnblogs.com

相關(guān)文章

最新評(píng)論

晋江市| 西昌市| 普安县| 尼木县| 垦利县| 嘉祥县| 茌平县| 嘉黎县| 汉川市| 武胜县| 边坝县| 两当县| 莱州市| 汝南县| 中牟县| 化隆| 高平市| 洪江市| 宁明县| 威远县| 安乡县| 长泰县| 宜春市| 惠安县| 桐梓县| 格尔木市| 阿巴嘎旗| 汕尾市| 永顺县| 肥乡县| 久治县| 南丹县| 绥芬河市| 宁河县| 镇巴县| 林州市| 新巴尔虎右旗| 洮南市| 寿阳县| 长葛市| 连平县|