日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js继承的几种类型

發布時間:2024/4/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 js继承的几种类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先提供構造函數

?

1. 構造函數實現繼承? ? ?

?原理:改變函數上下文實現繼承(call,apply,return,bind)

return {}/function(){}? ?如果返回值是對象 那么this指向這個對象? 如果返回值不是一個對象 那么this指向函數的實例

null/undefine/1? ? 雖然null是對象 但是this依然指向函數的實例 其他都是指向函數的實例

call,apply第一個參數是null 那么this指向的是windows對象

call,apply立即執行? bind想什么時候執行就什么時候執行

================================================================================================

特點: 1. 只繼承父類構造函數的屬性 沒有繼承父類原型屬性

? ? ? ? ? ? 2. 解決了原型鏈繼承缺點(無法向父類傳參? 繼承單一 共享父類實例的屬性)

? ? ? ? ? ? 3. 可以繼承多個構造函數屬性

? ? ? ? ? ? 4. 在子實例中可向父實例傳參

缺點: 1.只能繼承父類構造函數的屬性

? ? ? ? ? ? 2. 無法實現構造函數的復用 每個新實例都有父類構造函數的副本,臃腫

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

二、原型鏈繼承

原理 : 構造器的原型是父構造器的實例

特點: 1. 實例可繼承原型鏈上的數據

? ? ? ? ? ? 2. 無法傳參? 繼承單一? 新實例會共享父類屬性

?

三、組合繼承(常用)

重點 結合兩種模式優點 傳參和復用

?

特點: 1.?可以繼承父類原型上的屬性,可以傳參,可復用。 2.?每個新實例引入的構造函數屬性是私有的。

缺點:?調用了兩次父類構造函數(耗內存),子類的構造函數會代替原型上的那個父類構造函數。

?

優化方式一: SubType.prototype = Person.prototype

優化方式二: SubType.prototype = Object.create(Person.prototype)? SubType.prototype.constructor = SubType

四、原型式繼承

重點:用一個函數包裝一個對象,然后返回這個函數的調用,這個函數就變成了個可以隨意增添屬性的實例或對象。object.create()就是這個原理。

特點:類似于復制一個對象,用函數來包裝。

缺點:1、所有實例都會繼承原型上的屬性。

   2、無法實現復用。(新實例屬性都是后面添加的)

?

五、寄生繼承

重點:就是給原型式繼承外面套了個殼子。

優點:沒有創建自定義類型,因為只是套了個殼子返回對象(這個),這個函數順理成章就成了創建的新對象。

缺點:沒用到原型,無法復用。

?五、寄生式繼承

重點:就是給原型式繼承外面套了個殼子。

優點:沒有創建自定義類型,因為只是套了個殼子返回對象(這個),這個函數順理成章就成了創建的新對象。

缺點:沒用到原型,無法復用。

?

六、寄生組合式繼承(常用)

寄生:在函數內返回對象然后調用

組合:1、函數的原型等于另一個實例。2、在函數中用apply或者call引入另一個構造函數,可傳參

?

轉載于:https://www.cnblogs.com/moneyss/p/10635512.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的js继承的几种类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。