//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 例項作為子類的原型 ...