推薦的創建對象方式####
方法一:混合的構造函數/原型方式
function Car(sColor,iDoors,iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","John");
}
Car.prototype.showColor = function() {
alert(this.color);
};
var oCar1 = new Car("red",4,23);
var oCar2 = new Car("blue",3,25);
方法二:動態原型方法
function Car(sColor,iDoors,iMpg) {
this.color = sColor;
this.doors = iDoors;
this.mpg = iMpg;
this.drivers = new Array("Mike","John");
if (typeof Car._initialized == "undefined") {
Car.prototype.showColor = function() {
alert(this.color);
};
Car._initialized = true;
}
};
這兩種方式都解決了經典方式中成員方法會生成多份的問題或者新建對象的屬性成員指向同一個引用對象的問題。而問題的根因在于function和object是引用類型,作為屬性的object需要創建多份,而方法為節省空間在內存中應該只有一份。(說句實話--這段話還沒看懂);