Encapsulation 封裝
對於所有繼承自父類的方法,只需要在子類中定義那些你想改變的即可。
Abstraction 抽象
抽象是允許模擬工作問題中通用部分的一種機制。這可以通過繼承(具體化)或組合來實現。
JavaScript通過繼承實現具體化,通過讓類的實例是其他對象的屬性值來實現組合。
JavaScript Function 類繼承自Object類(這是典型的具體化) 。Function.prototype的屬性是一個Object實例(這是典型的組合)。
Polymorphism 多態
就像所有定義在原型屬性內部的方法和屬性一樣,不同的類可以定義具有相同名稱的方法;方法是作用於所在的類中。並且這僅在兩個類不是父子關係時成立(繼承鏈中,一個類不是繼承自其他類)。
面嚮對象語言的要求
一種面嚮對象語言需要向開發者提供四種基本能力:
封裝 - 把相關的信息(無論數據或方法)存儲在對象中的能力
聚集 - 把一個對象存儲在另一個對象內的能力
繼承 - 由另一個類(或多個類)得來類的屬性和方法的能力
多態 - 編寫能以多種方法運行的函數或方法的能力
ECMAScript 支持這些要求,因此可被是看做面向對象的。
對象的構成
在 ECMAScript 中,對象由特性(attribute)構成,特性可以是原始值,也可以是引用值。如果特性存放的是函數,它將被看作對象的方法(method),否則該特性被看作對象的屬性(property)。
面向對象程序設計的目的是在編程中促進更好的靈活性和可維護性,在大型軟件工程中廣為流行。憑藉其對模塊化的重視,面向對象的代碼開發更簡單,更容易理解,相比非模塊化編程方法 1, 它能更直接地分析, 編碼和理解複雜的情況和過程。
編程是一種修行,我願與志同道合的朋友攜手前行,一起探索有關編程的奧妙!
如果您在前端學習的過程中遇到難題,歡迎【關注】並【私信】我,大家一起交流解決!
文章推薦:
閱讀更多 山大王做前端 的文章
關鍵字: 知識 編程語言 JavaScript