JavaScript高級程序設(shè)計 閱讀筆記(十三) js定義類或?qū)ο?/h1>
更新時間:2012年08月14日 16:04:46 作者:
js定義類或?qū)ο蟮慕榻B,需要的朋友可以參考下
工廠方式
創(chuàng)建并返回特定類型的對象?! ?
復(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();
缺點:方法重復(fù)創(chuàng)建了。如在上面的調(diào)用示例中,oCar1和oCar2均有自己的shoColor方法,但這個是可以共用的。
構(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);
缺點:跟工廠方式一樣,方法重復(fù)創(chuàng)建了。
原型方式
本方式利用了對象的 prototype 屬性,可把它看成創(chuàng)建新對象所依賴的原型。這里用空構(gòu)造函數(shù)來設(shè)置類名,然后所有的屬性和方法都被直接賦予 prototype 屬性,重寫前面的例子,代碼如下:
復(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();
缺點:不能通過給構(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)點:無內(nèi)存浪費,創(chuàng)建方便。
這種方式是ECMAScript采用的主要方式。
動態(tài)原型方法
使用混合的構(gòu)造函數(shù)/原型方式把對象的方法放在了對象外面定義,讓人感覺不是那么面向?qū)ο?,沒有在視覺上進行很好的封裝,因此產(chǎn)生了動態(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)文章
-
JavaScript格式化數(shù)字的函數(shù)代碼
當要格式化的數(shù)字為null、空或非數(shù)字時,返回的結(jié)果。默認為0
2010-11-11
-
七個基于JavaScript實現(xiàn)的情人節(jié)表白特效
情人節(jié)將至 程序員證明自己不是直男的時候到啦 我們也有自己的專屬代碼浪漫。本文將介紹七個利用JavaScript實現(xiàn)的情人節(jié)表白特效,需要的可以參考一下 2022-01-01
-
JavaScript面向?qū)ο髮崿F(xiàn)貪吃蛇游戲
這篇文章主要為大家詳細介紹了JavaScript面向?qū)ο髮崿F(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下 2022-04-04
-
location.search在客戶端獲取Url參數(shù)的方法
最近一直在寫html,剛接觸到,感覺挺復(fù)雜的。。比如傳參,在.net里可以直接用Request接受,而在html中還要經(jīng)過處理,找了一些資料,寫了個方法。 2010-06-06
-
一文帶你掌握掌握JavaScript中不同屬性類型的細節(jié)
JavaScript是一種功能強大的編程語言,支持面向?qū)ο蟮木幊谭妒?,本文將介紹JavaScript中面向?qū)ο缶幊痰幕靖拍?,包括對象、屬性類型、定義多個屬性和讀取屬性的特性 2023-06-06
-
再次更新!MSClass (Class Of Marquee Scroll通用不間斷滾動JS封裝類 Ver 1.6)
再次更新!MSClass (Class Of Marquee Scroll通用不間斷滾動JS封裝類 Ver 1.6)... 2007-02-02
最新評論
創(chuàng)建并返回特定類型的對象?! ?
復(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();
缺點:方法重復(fù)創(chuàng)建了。如在上面的調(diào)用示例中,oCar1和oCar2均有自己的shoColor方法,但這個是可以共用的。
構(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);
缺點:跟工廠方式一樣,方法重復(fù)創(chuàng)建了。
原型方式
本方式利用了對象的 prototype 屬性,可把它看成創(chuàng)建新對象所依賴的原型。這里用空構(gòu)造函數(shù)來設(shè)置類名,然后所有的屬性和方法都被直接賦予 prototype 屬性,重寫前面的例子,代碼如下:
復(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();
缺點:不能通過給構(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)點:無內(nèi)存浪費,創(chuàng)建方便。
這種方式是ECMAScript采用的主要方式。
動態(tài)原型方法
使用混合的構(gòu)造函數(shù)/原型方式把對象的方法放在了對象外面定義,讓人感覺不是那么面向?qū)ο?,沒有在視覺上進行很好的封裝,因此產(chǎn)生了動態(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)文章
JavaScript格式化數(shù)字的函數(shù)代碼
當要格式化的數(shù)字為null、空或非數(shù)字時,返回的結(jié)果。默認為02010-11-11七個基于JavaScript實現(xiàn)的情人節(jié)表白特效
情人節(jié)將至 程序員證明自己不是直男的時候到啦 我們也有自己的專屬代碼浪漫。本文將介紹七個利用JavaScript實現(xiàn)的情人節(jié)表白特效,需要的可以參考一下2022-01-01JavaScript面向?qū)ο髮崿F(xiàn)貪吃蛇游戲
這篇文章主要為大家詳細介紹了JavaScript面向?qū)ο髮崿F(xiàn)貪吃蛇游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04location.search在客戶端獲取Url參數(shù)的方法
最近一直在寫html,剛接觸到,感覺挺復(fù)雜的。。比如傳參,在.net里可以直接用Request接受,而在html中還要經(jīng)過處理,找了一些資料,寫了個方法。2010-06-06一文帶你掌握掌握JavaScript中不同屬性類型的細節(jié)
JavaScript是一種功能強大的編程語言,支持面向?qū)ο蟮木幊谭妒?,本文將介紹JavaScript中面向?qū)ο缶幊痰幕靖拍?,包括對象、屬性類型、定義多個屬性和讀取屬性的特性2023-06-06再次更新!MSClass (Class Of Marquee Scroll通用不間斷滾動JS封裝類 Ver 1.6)
再次更新!MSClass (Class Of Marquee Scroll通用不間斷滾動JS封裝類 Ver 1.6)...2007-02-02