前面已經了解到,JavaScript中也可以實現私有屬性,而且JavaScript也能像C++和Java一樣支持基于類的繼承方法。為了展示這些是怎樣實現的,下面說明如何轉換前面使用Vehicle、SportsCar和CementTruck對象的示例,從而使用信息隱藏和繼承的新模式。代碼清單5-5列出了新的對象定義。 代碼清單5-5 classicalInheritance.js
需要注意,SportsCar和CementTruck對象沒有定義自己的wheelCount和curbWeightInPounds屬性,也沒有相關的存取函數,因為這些屬性和函數會從Vehicle對象繼承。 與前面一樣,需要一個簡單的HTML頁面來測試這些新對象。代碼清單5-6列出了測試這些新對象的HTML頁面。要特別注意createInheritance函數,看看如何使用這個函數在Vehicle和SportsCar對象之間以及Vehicle和CementTruck對象之間創建繼承關系。還要注意describe函數有所修改,以試圖直接訪問wheelCount和curbWeightInPounds屬性。這樣做會返回一個undefined值。 代碼清單5-6 classicalInheritance.html
分別點擊頁面上的各個按鈕會得到圖5-17所示的結果。正如所料,試圖直接訪問私有屬性就會返回undefined。
圖5-17 創建Vehicle、SportsCar和CementTruck對象,并使用describe函數描述它們的結果。私有屬性不能直接訪問,見警告框中的undefined值
引用:http://book.csdn.net/bookfiles/11/100117058.shtml
Powered by: BlogJava Copyright © 沙漠中的魚