DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> javascript關於繼承解析
javascript關於繼承解析
編輯:JavaScript基礎知識     

上一篇已介紹了組合繼承,現在講講剩余的幾種繼承。

原型式繼承

調用一個函數,接收這個函數返回來的對象,這個對象的原型就是傳入函數的參數對象。

如:

function  personObject(o){
    function F(){}
    F.prototype = o;
    return new F();
}
var person = {
   name:"Nicholas",
   friends:["Shelby","Court","Van"]
}

var person_one = personObject(person);

從上面的代碼中,我們知道person是person_one的原型。ES5中添加了一個方法規范化原型式繼承,這個方法是Object.create(),這個方法有兩個參數,第一個是作為新對象原型的對象,像上面的person,第二個是為新對象定義額外屬性的對象。第二個參數可選。

如:

var person_one = Object.create(person, {
        name: {
            value:"Jon"
      }
});

當你只想讓一個對象與另一個對象保持類似時,可以使用原型式繼承。

寄生式繼承   

在一個函數裡實現一次原型式繼承,然後為接收到的這個對象添加自己的屬性與方法。

如:

function createAnother(o){
   var person_one = personObject(o);
   person_one.sayHi = function(){
       alert(" hi ");
   }
   return person_one;
}

寄生組合式繼承

組合繼承也有其缺點,它實現了兩次屬性繼承,而寄生組合式繼承就避免了這個問題。實例通過構造函數繼承了屬性,而原型的方法則是通過寄生式繼承的方式來繼承。

如:

function inherit(subType, superType){
   var prototype = Object(superType.prototype);
   prototype.constructor = subType;
   subType.prototype = prototype;
}

通過調用上面的函數,實現subTye.prototype的原型是superType.prototype,完成了原型方法的繼承。

以上這篇javascript關於繼承解析就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved