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={};


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章