js的六種繼承方式:
阿新 • • 發佈:2022-05-08
js實現繼承有六種方式,其中包括:
·原型鏈繼承、借用建構函式繼承、組合繼承(組合原型鏈繼承和借用建構函式繼承)
·原型式繼承、寄生式繼承、寄生組合式繼承
繼承前提:想要繼承就必須有父類(繼承誰,提供繼承的屬性)
繼承的優缺點:
*原型鏈繼承:
缺點:1、新例項無法向父類建構函式傳參。
2、繼承單一
3、所有新例項都會共享父類例項的屬性。(原型上的屬性是共享的,一個例項修改了原型屬性,另一個例項的原型屬性也會被修改!)
*借用建構函式繼承
特點:1、只繼承了父類建構函式的屬性,沒有繼承父類原型的屬性。
2、解決了原型鏈繼承缺點1、2、3。
3、可以繼承多個建構函式屬性(call多個)。
4、在子例項中可向父例項傳參。
缺點: 1、只能繼承父類建構函式的屬性。
2、無法實現建構函式的複用。(每次用每次都要重新呼叫)
3、每個新例項都有父類建構函式的副本,臃腫。
*組合繼承(組合原型鏈繼承和借用建構函式繼承)
缺點:呼叫了兩次父類建構函式(耗記憶體),子類的建構函式會代替原型上的那個父類建構函式。
*原型式繼承
特點:類似於複製一個物件,用函式來包裝。
*寄生式繼承
優點:沒有建立自定義型別,因為只是套了個殼子返回物件(這個),這個函式順理成章就成了建立的新物件。
*寄生組合式繼承
寄生:在函式內返回物件然後呼叫組合:
1、函式的原型等於另一個例項。
2 、在函式中用apply或者call引入另一個建構函式,可傳參