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