JS繼承方式

js繼承有多種繼承方式,但最常用的是組合模式,代碼例子如下

? ? ?在這種方式下,把實例函數(shù)都保存在原型對象上,這樣可以實現(xiàn)函數(shù)的復用,通過Super.call(this,age)繼承父類的屬性。這種方式有一點缺點,子類原型上有一份多余的父類實例屬性,因為父類的構造函數(shù)被調用了兩次,生成了兩份,而子類上的那份覆蓋了子類原型上的那一份原型,存在內存浪費的情況。

針對上述情況提出了寄生組合方式,代碼如下:


這種方式中,提出了中間函數(shù),切掉了原型對象上多余的父類實例屬性。

隨著ES6標準的提出,出現(xiàn)了更優(yōu)雅的繼承方式,更接近于面向對象的編程方式,主要關鍵字是class和extends,代碼如下:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 借用構造函數(shù)繼承 原型鏈式繼承(借用原型鏈實現(xiàn)繼承) 組合式繼承 組合式繼承優(yōu)化1 組合式繼承優(yōu)化2 ES6中繼承...
    lxt410725閱讀 372評論 0 1
  • 工廠模式類似于現(xiàn)實生活中的工廠可以產生大量相似的商品,去做同樣的事情,實現(xiàn)同樣的效果;這時候需要使用工廠模式。簡單...
    舟漁行舟閱讀 8,131評論 2 17
  • 博客內容:什么是面向對象為什么要面向對象面向對象編程的特性和原則理解對象屬性創(chuàng)建對象繼承 什么是面向對象 面向對象...
    _Dot912閱讀 1,537評論 3 12
  • 一.原型鏈繼承 原型鏈繼承主要是通過修改原型中的prototype的指向,從而繼承上級構造函數(shù)的公有屬性 兩構造函...
    錘子愛砸房子閱讀 1,159評論 0 0
  • 有人問 時間是什么 打了比方 手里抓著一把沙子,然后放開 漏下的就是時間 那過去的日子呢 是什么 看不見,摸不著 ...
    丘禾閱讀 706評論 0 0

友情鏈接更多精彩內容