js繼承6種方式實現

2021-10-01 15:08:38 字數 530 閱讀 8265

三、組合繼承(組合原型鏈繼承和借用建構函式繼承)(常用)

重點:結合了兩種模式的優點,傳參和復用

特點:1、可以繼承父類原型上的屬性,可以傳參,可復用。

2、每個新例項引入的建構函式屬性是私有的。

缺點:呼叫了兩次父類建構函式(耗記憶體),子類的建構函式會代替原型上的那個父類建構函式。

繼承這些知識點與其說是物件的繼承,更像是函式的功能用法,如何用函式做到復用,組合,這些和使用繼承的思考是一樣的。上述幾個繼承的方法都可以手動修復他們的缺點,但就是多了這個手動修復就變成了另一種繼承模式。

這些繼承模式的學習重點是學它們的思想,不然你會在coding書本上的例子的時候,會覺得明明可以直接繼承為什麼還要搞這麼麻煩。就像原型式繼承它用函式複製了內部物件的乙個副本,這樣不僅可以繼承內部物件的屬性,還能把函式(物件,**內部物件的返回)隨意呼叫,給它們新增屬性,改個引數就可以改變原型物件,而這些新增的屬性也不會相互影響。

JS實現繼承的6種方式

將建構函式的原型設定為另乙個建構函式的例項物件,這樣就可以繼承另乙個原型物件的所有屬性和方法,可以繼續往上,最終形成原型鏈。function wonman name let wonmanobj newwonman 優點 不限制呼叫方式 簡單,易實現 缺點 不能多次繼承 為了解決原型中包含引用型別值的...

JS 6種繼承方式

首先定義乙個父類 建構函式 function animal name 原型上面的方法 animal.prototype.eat function food 核心 將父類的例項作為子類的原型function dog dog.prototype newanimal 將animal的例項掛載到了dog的原...

js繼承的6種方式

想要繼承,就必須要提供個父類,繼承誰,提供繼承的屬性 function person name person.prototype.age 10 給建構函式新增了原型屬性function per per.prototype newperson var per1 newper console.log p...