當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
JavaScript对象、原型、原型链知识总结思维导图
生活随笔
收集整理的這篇文章主要介紹了
JavaScript对象、原型、原型链知识总结思维导图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這個思維導圖是我對Object,原型,原型鏈等知識的總結,主要參考高程一書第六章,寫完才發現這么多,以后可能會進行精簡。內容可能會出現差錯,歡迎批評指正。下載==>Github
ECMAScript支持面向對象(OO)編程,但不使用類或者接口。對象可以在代碼執行過程中創建和增強,因此具有動態性而非嚴格定義的實體。在沒有類的情況下,可以采用下列模式創建對象。
- 工廠模式,使用簡單的函數創建對象,為對象添加屬性和方法,然后返回對象。這個模式后來被構造函數模式所取代。
- 構造函數模式,可以創建自定義引用類型,可以像創建內置對象實例一樣使用new操作符。不過,構造函數模式也有缺點,即它的每個成員都無法得到復用,包括函數。由于函數可以不局限于任何對象(即與對象具有松散耦合的特點),因此沒有理由不在多個對象間共享函數。
- 原型模式,使用構造函數的prototype屬性來指定那些應該共享的屬性和方法。組合使用構造函數模式和原型模式時,使用構造函數定義實例屬性,而使用原型定義共享的屬性和方法。
JavaScript主要通過原型鏈實現繼承。原型鏈的構建是通過將一個類型的實例賦值給另一個構造函數的原型實現的。這樣,子類型就能夠訪問超類型的所有屬性和方法,這一點與基于類的繼承很相似。原型鏈的問題是對象實例共享所有繼承的屬性和方法,因此不適宜單獨使用。解決這個問題的技術是借用構造函數,即在子類型構造函數的內部調用超類型構造函數。這樣就可以做到每個實例都具有自己的屬性,同時還能保證只使用構造函數模式來定義類型。使用最多的繼承模式是組合繼承,這種模式使用原型鏈繼承共享的屬性和方法,而通過借用構造函數繼承實例屬性。此外,還存在下列可供選擇的繼承模式。
- 原型式繼承,可以在不必預先定義構造函數的情況下實現繼承,其本質是執行對給定對象的淺復制。而復制得到的副本還可以得到進一步改造。
- 寄生式繼承,與原型式繼承非常相似,也是基于某個對象或某些信息創建一個對象,然后增強對象,最后返回對象。為了解決組合繼承模式由于多次調用超類型構造函數而導致的低效率問題,可以將這個模式與組合繼承一起使用。
- 寄生組合式繼承,集寄生式繼承和組合繼承的優點與一身,是實現基于類型繼承的最有效方式。
?
?
轉載于:https://www.cnblogs.com/dianli/p/9527249.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的JavaScript对象、原型、原型链知识总结思维导图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Git学习记录 力做全网最强入门教程
- 下一篇: 【GitHub】github相关问题和解