原型模式
原型模式
目標
以一個存在的對象為模板創建一個新的對象。
何時使用
- 新建對象的初始化過程非常昂貴,所以用克隆的方式。
- 希望創建一樣的對象。
- 對象中的狀態是有限的。
- 當要實例化的類是在運行時刻指定時,例如,通過動態裝載。
- 當一個系統應該獨立于它的產品創建,構成和表示時。
舉例
1、資源優化場景。 2、類初始化需要消化非常多的資源,這個資源包括數據、硬件資源等。 3、性能和安全要求的場景。 4、通過 new 產生一個對象需要非常繁瑣的數據準備或訪問權限,則可以使用原型模式。 5、一個對象多個修改者的場景。 6、一個對象需要提供給其他對象訪問,而且各個調用者可能都需要修改其值時,可以考慮使用原型模式拷貝多個對象供調用者使用。
代碼
由于JavaScript是基于原型的語言,所以內置了原型模式。
var myCar = {
name: "Ford Escort",
drive: function () {
console.log( "Weeee. I'm driving!" );
},
panic: function () {
console.log( "Wait. How do you stop this thing?" );
}
};
// Use Object.create to instantiate a new car
var yourCar = Object.create( myCar );
// Now we can see that one is a prototype of the other
console.log( yourCar.name );
總結
Object.create可以參考