JavaScript之實現私有屬性、像C++和Java一樣支持基于類的繼承方法之例子
Posted on 2008-04-24 14:29 沙漠中的魚 閱讀(410) 評論(0) 編輯 收藏 所屬分類: javascript前面已經了解到,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值