天天看點

JavaScript類建立的幾種方式

/*******************JavaScript預設規則***********
1.類名首字元大寫
2.方法名首字元小寫
3.屬性首字元大寫
4.字段全小寫
5.常量全大寫
***********************************************/

//*****************公共方法********************
function showColor(){
	alert(this.Color);
}


1、工廠方式代碼示例

function CreateCar(sColor, iDoors, iMpg) {
	var oTempCar =  new Object();
	oTempCar.Color = sColor;
	oTempCar.Door = iDoors;
	oTempCar.Mpg = iMpg;
	oTempCar.ShowColor = showColor;//将此函數定義在外部,保證每個對象調用的都是一個方法
	return oTempCar;
}
//var oCar1 = CreateCar("red",4,23);  使用時需要執行個體化一個對象


2、構造函數方式代碼

function Car(sColor, iDoors, iMpg) {
  this.Color = sColor;
  this.Doors = iDoors;
  this.Mpg = iMpg;
  this.ShowColor = showColor; //将此函數定義在外部,保證每個對象調用的都是一個方法
}
//var car1=new Car("red",4,23);  使用時需要執行個體化一個對象


3、原型方式代碼

function Car() { }
Car.prototype.Color = "red";
Car.prototype.Door = 4;
Car.prototype.Mpg = 23;
Car.prototype.Drivers = new Array("Mike", "Sue");
Car.prototype.ShowColor = showColor();

//var car1=new Car();  使用時需要執行個體化一個對象


4、混合的構造函數/原型方式


//使用構造函數定義對象的所有非函數屬性,使用原型方法定義函數屬性(這裡指方法)

function Car(sColor, iDoors, iMpg) { //構造函數
  this.Color = sColor;
  this.Doors = iDoors;
  this.Mpg = iMpg;
}
Car.prototype.ShowColor = showColor; //原型方法
//var car1=new Car("red",4,23);  使用時需要執行個體化一個對象


5、動态原型方式


function Car(sColor, iDoors, iMpg) {
  this.Color = sColor;
  this.Doors = iDoors;
  this.Mpg = iMpg;
	
  if (typeof Car._initialized == "undefined") {
    Car.prototype.ShowColor = showColor;
    Car._initialized = true;
  }
}
//var car1=new Car("red",4,23);  使用時需要執行個體化一個對象
6、混合工廠方式
function CreateCar(sColor, iDoors, iMpg) {
  var oTempCar = new Object();
  oTempCar.Color = sColor;
  oTempCar.Door = iDoors;
  oTempCar.Mpg = iMpg;
  oTempCar.ShowColor = showColor; //将此函數定義在外部,保證每個對象調用的都是一個方法
  return oTempCar;
}

//var oCar1=new CreateCar("red",4,23);  使用時需要執行個體化一個對象      

繼續閱讀