1. 程式人生 > 其它 >js的六種繼承方式:

js的六種繼承方式:

js實現繼承有六種方式,其中包括:

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

·原型式繼承、寄生式繼承、寄生組合式繼承

繼承前提:想要繼承就必須有父類(繼承誰,提供繼承的屬性)

繼承的優缺點:

   *原型鏈繼承:

缺點:1、新例項無法向父類建構函式傳參。

        2、繼承單一

        3、所有新例項都會共享父類例項的屬性。(原型上的屬性是共享的,一個例項修改了原型屬性,另一個例項的原型屬性也會被修改!)

  *借用建構函式繼承

特點:1、只繼承了父類建構函式的屬性,沒有繼承父類原型的屬性。

2、解決了原型鏈繼承缺點1、2、3。

3、可以繼承多個建構函式屬性(call多個)。

4、在子例項中可向父例項傳參。

缺點:  1、只能繼承父類建構函式的屬性。

2、無法實現建構函式的複用。(每次用每次都要重新呼叫)

3、每個新例項都有父類建構函式的副本,臃腫。

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

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

*原型式繼承

特點:類似於複製一個物件,用函式來包裝。

*寄生式繼承

優點:沒有建立自定義型別,因為只是套了個殼子返回物件(這個),這個函式順理成章就成了建立的新物件。

*寄生組合式繼承

寄生:在函式內返回物件然後呼叫組合:

1、函式的原型等於另一個例項。

2  、在函式中用apply或者call引入另一個建構函式,可傳參