javaScript工廠方式原始的方式
因為物件的屬性可以在物件建立後動態定義,這在 JavaScript 最初引入時都會編寫類似下面的程式碼
在上面的程式碼中,建立物件 car。然後給它設置幾個屬性:它的顏色是藍色,有四個門,每加侖油可以跑 25 英里。最後一個屬性其實是指向函數的指針,這意味著該屬性是個方法。執行這段程式碼後,就可以使用物件 car。不過這裡有一個問題,就是可能需要創建多個 car 的實例,這顯然不是很好的方式。
解決方案:工廠方法
要解決該問題,開發者創造了能創建並返回特定類型的物件的工廠函數。例如,函數 createCar() 可用於封裝前面列出的建立 car 物件的操作:
oCar1.showColor(); //輸出 "red"
在工廠函數外定義物件的方法
有些開發者在工廠函數外定義物件的方法,然後透過屬性指向該方法,從而避免這個問題:
}
function createCar(sColor,iDoors,iMpg) {
var oTempCar = new Object;
oTempCar.color = sColor;
oTempCar.doors = iTempCar.color = sColor;
oTempCar.doors = iDoors;
oTempCar.showColor = showColor;
}
var oCar2 = createCar("blue",3,25);
oCar1.showColor(); //輸出 "red"