最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

web前端tips:js繼承——組合繼承

2023-08-17 14:57 作者:上課我們聊QQ  | 我要投稿


上篇文章給大家分享了 js繼承中的借用構造函數(shù)繼承

web前端tips:js繼承——借用構造函數(shù)繼承

在借用構造函數(shù)繼承中,我提到了它的缺點

無法繼承父類原型鏈上的方法和屬性,只能繼承父類構造函數(shù)中的屬性和方法
父類的方法無法復用,每個子類實例都會創(chuàng)建一份方法的副本

有沒有方法解決這個缺點捏?

組合繼承

聽名字,即可明白肯定是多個繼承方法組合在一起實現(xiàn)js的繼承,突出各自優(yōu)點,互補各自缺點。

組合繼承是JavaScript中實現(xiàn)繼承的一種常見方式。它通過結合原型鏈和構造函數(shù)來實現(xiàn)繼承。

具體而言,組合繼承通過在子類構造函數(shù)中調(diào)用父類構造函數(shù),從而繼承父類的屬性,并且使用原型鏈繼承父類的方法。

以下是實現(xiàn)組合繼承的基本步驟:

  1. 創(chuàng)建父類構造函數(shù):定義一個父類構造函數(shù),用來初始化父類的屬性和方法

  2. 創(chuàng)建子類構造函數(shù):定義一個子類構造函數(shù),通過調(diào)用父類構造函數(shù)來繼承父類的屬性,并設置子類自己的屬性。

  3. 繼承父類的方法:將子類的原型對象設置為父類的實例,從而繼承父類的方法。

  4. 添加子類特有的方法:在子類的原型對象上添加子類特有的方法。

  5. 創(chuàng)建子類實例:通過子類構造函數(shù)創(chuàng)建子類的實例,并調(diào)用繼承自父類的方法以及子類自己的方法。

通過以上步驟,你就可以使用組合繼承在JavaScript中實現(xiàn)父類和子類之間的繼承關系。這種方式既能夠繼承父類的屬性,又能夠繼承父類的方法,并且還能添加子類特有的方法。

優(yōu)點

  • 子類實例能夠擁有父類的屬性和方法,包括通過原型繼承得到的共享方法。

  • 子類實例能夠擁有自己獨有的屬性和方法。

  • 使用原型鏈繼承時,父類的原型方法可以在子類實例上直接訪問,減少了內(nèi)存占用。

  • 借用構造函數(shù)繼承可以避免引用類型屬性的共享問題。

缺點

  • 在使用組合繼承時,每次創(chuàng)建子類實例都會調(diào)用一次父類的構造函數(shù),導致父類的屬性被重復定義。

  • 原型鏈繼承會將父類的屬性方法復制到子類的原型上,可能導致內(nèi)存占用過大。

  • 組合繼承需要調(diào)用兩次父類的構造函數(shù),一次是在子類的構造函數(shù)中調(diào)用?Parent.call(this),一次是通過?Child.prototype = new Parent()?實現(xiàn)原型繼承。這樣做既增加了調(diào)用次數(shù),也可能導致父類構造函數(shù)中的邏輯被執(zhí)行多次。

總結來說,組合繼承是一種常用的繼承方式,它既能夠繼承父類的屬性和方法,又能夠擁有自身獨有的屬性和方法。但它的缺點是在創(chuàng)建子類實例時會重復調(diào)用父類的構造函數(shù),可能導致內(nèi)存占用過大,并且需要額外處理父類構造函數(shù)中的邏輯。

結語

牽手 持續(xù)為你分享各類知識和軟件 ,歡迎訪問、關注、討論 并留下你的小心心?


web前端tips:js繼承——組合繼承的評論 (共 條)

分享到微博請遵守國家法律
个旧市| 永和县| 吐鲁番市| 清镇市| 舞阳县| 漠河县| 铜鼓县| 来宾市| 威远县| 会泽县| 镇康县| 剑川县| 津南区| 西盟| 阳高县| 太谷县| 浮山县| 榕江县| 钟山县| 郑州市| 梅河口市| 农安县| 邢台市| 探索| 金乡县| 仙游县| 突泉县| 山阳县| 信宜市| 连江县| 浦县| 华宁县| 开封市| 石景山区| 三穗县| 临沭县| 罗山县| 龙州县| 长岭县| 海南省| 海兴县|