040_面向对象
1. 面向對象術語
1.1. 對象
1.1.1. JavaScript把對象(object)定義為"屬性的無序集合, 每個屬性存放一個原始值、對象或函數"。
1.1.2. 在JavaScript中, 對象由屬性(attribute)構成, 屬性可以是原始值, 也可以是引用值。如果屬性存放的是函數, 它將被看作對象的方法(method), 否則該屬性被看作對象的屬性(property)。
1.2. 類: 每個對象都由類定義, 可以把類看做對象的配方。類不僅要定義對象的接口(interface)(開發者訪問的屬性和方法), 還要定義對象的內部工作(使屬性和方法發揮作用的代碼)。編譯器和解釋程序都根據類的說明構建對象。
1.3. 實例: 程序使用類創建對象時, 生成的對象叫作類的實例(instance)。對類生成的對象的個數的唯一限制來自于運行代碼的機器的物理內存。每個實例的行為相同, 但實例處理一組獨立的數據。由類創建對象實例的過程叫做實例化(instantiation)。
2. 面向對象語言的要求
2.1. 一種面向對象語言需要向開發者提供四種基本能力:
- ?封裝: 把相關的信息(無論數據或方法)存儲在對象中的能力
- ?聚集: 把一個對象存儲在另一個對象內的能力
- ?繼承: 由另一個類(或多個類)得來類的屬性和方法的能力
- ?多態: 編寫能以多種方式運行的函數或方法的能力
2.2. JavaScript支持這些要求, 因此可被是看做面向對象的。
總結
- 上一篇: 012_原始值和引用值
- 下一篇: 041_对象的创建和销毁