/*******************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); 使用时需要实例化一个对象