javascript 類定義的4種方法
更新時間:2009年09月12日 21:51:47 作者:
javascript 類定義的4種方法,大家可以參考下根據(jù)需要選擇。
復(fù)制代碼 代碼如下:
/*
工廠方式--- 創(chuàng)建并返回特定類型的對象的 工廠函數(shù) ( factory function )
*/
function createCar(color,doors,mpg){
var tempCar = new Object;
tempCar.color = color;
tempCar.doors = doors;
tempCar.mpg = mpg;
tempCar.showCar = function(){
alert(this.color + " " + this.doors);
}
return tempCar;
}
/*
構(gòu)造函數(shù)方式--- 構(gòu)造函數(shù)看起來很像工廠函數(shù)
*/
function Car(color,doors,mpg){
this.color = color;
this.doors = doors;
this.mpg = mpg;
this.showCar = function(){
alert(this.color);
};
}
/*
原型方式--- 利用了對象的 prototype 屬性,可把它看成創(chuàng)建新對象所依賴的原型
*/
function Car(color,doors,mpg){
this.color = color;
this.doors = doors;
this.mpg = mpg;
this.drivers = new Array("nomad","angel");
}
Car.prototype.showCar3 = function(){
alert(this.color);
};
/*
混合的構(gòu)造函數(shù) /原型方式--- 用構(gòu)造函數(shù)定義對象的所有非函數(shù)屬性,用原型方式定義對象的函數(shù)屬性(方法)
*/
function Car(sColor, iDoors, iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike", "Sue");
}
Car.prototype.showColor = function () {
alert(this.color);
};
/*
動態(tài)原型方法--- 在構(gòu)造函數(shù)內(nèi)定義非函數(shù)屬性,而函數(shù)屬性則利用原型屬性定義。唯一的區(qū)別是賦予對象方法的位置。
*/
function Car(sColor, iDoors, iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike", "Sue");
if (typeof Car._initialized == "undefined") {
Car.prototype.showColor = function () {
alert(this.color);
};
Car._initialized = true;
}
} //該方法使用標(biāo)志( _initialized )來判斷是否已給原型賦予了任何方法。
相關(guān)文章

javascript 面向?qū)ο笕吕砭氈^承與多態(tài)
前面我們討論了如何在 JavaScript 語言中實(shí)現(xiàn)對私有實(shí)例成員、公有實(shí)例成員、私有靜態(tài)成員、公有靜態(tài)成員和靜態(tài)類的封裝。這次我們來討論一下面向?qū)ο蟪绦蛟O(shè)計中的另外兩個要素:繼承與多態(tài)。
2009-12-12 
js面向?qū)ο?多種創(chuàng)建對象方法小結(jié)
js面向?qū)ο?多種創(chuàng)建對象方法小結(jié),需要的朋友可以參考下
2012-05-05