物件導向繼承 寄生式組合繼承

2021-10-13 12:52:34 字數 511 閱讀 2438

//2.子類建構函式

function

ministudent

(name,age,***)

}//混合繼承 物件冒充(建構函式中屬性和方法)+原型鏈繼承(繼承原型物件中屬性和方法)

//4.原型鏈繼承 object.create():以原型為基礎建立物件

ministudent.prototype = object.

create

(student.prototype)

;ministudent.prototype.constructor = ministudent;

//5.例項化物件

var ms1 =

newministudent

("小郝",10

,"女");

console.

log(ms1)

;

優點:可以傳參,引用資料型別不會再一改全改,可以繼承父類原型中的屬性和方法,不會建立多餘的父類例項

寄生式組合繼承

function box f 這樣直接將原型指向乙個物件,會將原有的constructor覆蓋 box.prototype 因此這裡我們使用定義屬性,重新穿件這個constructor的指向 object.defineproperty box.prototype,constructor functi...

組合繼承和寄生式組合繼承

組合繼承綜合了原型鏈和盜用建構函式,解決了原型內引用值共享的問題,以及子類在例項化時不能給父類建構函式傳參的問題。缺點 呼叫了兩次父類建構函式影響效率,而且子類的原型物件上也擁有了不必要也用不上的屬性,即父類建構函式的例項屬性。這樣的話子類的例項物件如果刪除某個屬性,這個屬性仍然可以訪問到,因為它可...

寄生組合繼承

核心 通過寄生方式,砍掉父類的例項屬性,這樣,在呼叫兩次父類的構造的時候,就不會初始化兩次例項方法 屬性,避免的組合繼承的缺點 既然要實現繼承定義乙個父類 定義乙個動物類 function animal name super.prototype animal.prototype 例項作為子類的原型 ...