在上一篇文章中,主要學(xué)習(xí)了JavaScript中的對象以及構(gòu)造函數(shù)的說明和使用,這一篇文章我們主要學(xué)習(xí)JavaScript的“繼承”。關(guān)于繼承這個特性,JavaScript并不像Java一樣有嚴格的說明,因為在Java中繼承是實現(xiàn)拓展父類的功能,將公共的代碼進行封裝。在上一篇文章也簡單提到了“繼承”,那么這篇文章就著重描寫JavaScript中關(guān)于繼承的幾種實現(xiàn)形式。
首先復(fù)習(xí)回憶下在上一篇文章,關(guān)于繼承在JavaScript中的寫法:

首先我們定義了一個cook的對象,這個cook對象里面有姓名字段,也有run函數(shù),接著我們在定義了一個 jack,其中,這個jack 里面僅有一個姓名字段,但是我們希望這個對象可以“繼承”cook對象,來使用它的run函數(shù),這個時候,我們可以使用 __proto__ 關(guān)鍵字去實現(xiàn),這個關(guān)鍵字簡單理解就是extends,然后,我們在調(diào)用jack對象里面的 run函數(shù)。最后通過日志打印的結(jié)果可以顯示,jack對象成功的使用了cook對象內(nèi)的run函數(shù)。
第二種繼承方式是,可以使用Object.create()函數(shù),其中這個括號里面的是我們想要繼承的對象:
效果如下圖

從ES6開始正式,新的關(guān)鍵字class被引入到JavaScript中。class的目的就是讓定義類更簡單。上篇文章寫構(gòu)造函數(shù)的時候,我們知道通過構(gòu)造函數(shù)也可以實現(xiàn)new對象。先復(fù)習(xí)下構(gòu)造函數(shù)的寫法:

如果用新的class關(guān)鍵字來編寫這里的newObj,可以這樣寫:

好了,這里對構(gòu)造函數(shù)提供了一種新的使用方式??赡苣銜枺覀?yōu)槭裁匆褂胏lass關(guān)鍵字,因為使用了class關(guān)鍵字的“對象”,我們就可以使用JavaScript的extends關(guān)鍵字了,這個關(guān)鍵字就是繼承的意思。繼承的寫法跟java有點類似,寫法如下面的藍色矩形:

其中,藍色矩形內(nèi)的super方法是這個需要調(diào)用父類的構(gòu)造方法。因此,這樣通過extends可以快速完成繼承這一特性。
本篇文章主要學(xué)習(xí)的是關(guān)于對象的繼承三種實現(xiàn)形式說明和使用。本章的基本內(nèi)容就結(jié)束了。
未完待續(xù)。。。
如果這篇文章對您有開發(fā)or學(xué)習(xí)上的些許幫助,希望各位看官留下寶貴的star,謝謝。
Ps:著作權(quán)歸作者所有,轉(zhuǎn)載請注明作者, 商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處(開頭或結(jié)尾請?zhí)砑愚D(zhuǎn)載出處,添加原文url地址),文章請勿濫用,也希望大家尊重筆者的勞動成果。