js的原型模式(關鍵是clone)

2021-10-09 02:50:52 字數 932 閱讀 3634

既然原型模式是通過轉殖來建立物件的,那麼很自然地會想到,如果需要乙個跟某個物件一

模一樣的物件,就可以使用原型模式。

假設我們在編寫乙個飛機大戰的網頁遊戲。某種飛機擁有分身技能,當它使用分身技能的時

候,要在頁面中建立一些跟它一模一樣的飛機。如果不使用原型模式,那麼在建立分身之前,無

疑必須先儲存該飛機的當前血量、炮彈等級、防禦等級等資訊,隨後將這些資訊設定到新建立的

飛機上面,這樣才能得到一架一模一樣的新飛機。

如果使用原型模式,我們只需要呼叫負責轉殖的方法,便能完成同樣的功能。

原型模式的實現關鍵,是語言本身是否提供了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 原型 屬性,這個屬性是乙個指標,指向乙個物件。這個物件就是通過呼叫建構函式而建立的那個物件例項的原型物件。使用原型物件,就不必在建構函式中定義物件例項的...