1. 程式人生 > >javascript原型模式

javascript原型模式

    在原型變成思想中,類並不是必須的,物件並不一定要從類中建立,一個物件通過克隆另一個物件而得到。

1、原型模式實現的關鍵是語言本身提供了clone方法,es5提供了Object.creat方法。如下:

var Plane=function(){

           this.blood=1000;

           this.attackLevel=1;

           this.defenseLebel=1;

        }

        varplane =new Plane();

         plane.blood=500;

         plane.attackLevel=10;

         plane.defenseLebel=7;

         var clonePlane = Object.create(plane);

         console.log(clonePlane);

 輸出:

     Plane {}

     PlaneattackLevel:10

     blood:500

     defenseLebel:7

2、原型鏈

舉一個例子,

    Object是Animal的原型,而Animal是Dog的原型,他們之間形成了一個原型鏈。

這個原型鏈很有用,如果我們呼叫Dog的某個方法,如果Dog沒有,他就會委託給他的原型Animal,,如果Animal也沒有這個屬性,Animal就會順著原型鏈委託給原型Object物件,這樣一來就能形成繼承的效果,看起來像是Animal是Dog的“父類”,而Object是Animal的“父類”。

    所有原型程式設計一個重要特性是,當無法響應某個請求時,會把請求委託給自己的原型。

原型程式設計有以下的規則:

l  所有資料都是物件。

l  要得到一個物件,不是例項化類,而是找到一個物件作為原型並克隆它。

l  物件會記住他的原型。

l  如果物件無法響應某個請求,他會把這個請求委託給自己的原型。

3、javascript的根物件是Object.prototype,Object.prototype是一個空物件,js中遇到的所有物件都是從Object.prototype克隆而來的。

4、克隆物件的方式:

l     varobj1=new Object();

l     varobj2={};