既然原型模式是通過轉殖來建立物件的,那麼很自然地會想到,如果需要乙個跟某個物件一
模一樣的物件,就可以使用原型模式。
假設我們在編寫乙個飛機大戰的網頁遊戲。某種飛機擁有分身技能,當它使用分身技能的時
候,要在頁面中建立一些跟它一模一樣的飛機。如果不使用原型模式,那麼在建立分身之前,無
疑必須先儲存該飛機的當前血量、炮彈等級、防禦等級等資訊,隨後將這些資訊設定到新建立的
飛機上面,這樣才能得到一架一模一樣的新飛機。
如果使用原型模式,我們只需要呼叫負責轉殖的方法,便能完成同樣的功能。
原型模式的實現關鍵,是語言本身是否提供了clone方法。ecmascript 5提供了object.create
方法,可以用來轉殖物件。**如下:
var
plane
=function()
var plane =
newplane()
; plane.blood =
500;
plane.attacklevel =10;
plane.defenselevel =7;
var cloneplane = object.
create
(plane);
console.
log(cloneplane)
輸出結果:
這樣就使用原型模式實現了轉殖了乙個一模一樣的飛機物件
如果瀏覽器不支援object.create方法,我們可以使用如下:
object.create = object.create ||
function
( obj );f
.prototype = obj;
return
newf()
;}
JS原型模式擴充套件
本篇文章 主要接上篇文章 js原型模式 function fn 擴充套件公有屬性 fn.prototype gety function var f new fn f.getx 100 f.proto getx undefined 在原型模式中 this常用的有兩種情況 在類中 this.this 當...
js建立物件 原型模式
原型模式是用來建立物件的,它是在建構函式建立物件基礎上,為了實現資料的共享,這種共享包括屬性的共享,也包括方法的共享。既然原型模式是在建構函式模式的基礎上改進的,那麼這種模式會既有建構函式的特點又有原型模式的特點。關於原型模式的使用方法用一句話總結 不需要共享的資料寫在建構函式中,需要共享的資料寫在...
原型模式與原型鏈(js學習)
物件的原型 prototype 指向另乙個物件,本物件的屬性繼承於他的原型物件。原型物件 原型模式 我們建立的每乙個函式都有乙個prototype 原型 屬性,這個屬性是乙個指標,指向乙個物件。這個物件就是通過呼叫建構函式而建立的那個物件例項的原型物件。使用原型物件,就不必在建構函式中定義物件例項的...