JavaScript之實現(xiàn)私有屬性、像C++和Java一樣支持基于類的繼承方法之例子
Posted on 2008-04-24 14:29 沙漠中的魚 閱讀(419) 評論(0) 編輯 收藏 所屬分類: javascript前面已經(jīng)了解到,JavaScript中也可以實現(xiàn)私有屬性,而且JavaScript也能像C++和Java一樣支持基于類的繼承方法。為了展示這些是怎樣實現(xiàn)的,下面說明如何轉(zhuǎn)換前面使用Vehicle、SportsCar和CementTruck對象的示例,從而使用信息隱藏和繼承的新模式。代碼清單5-5列出了新的對象定義。
代碼清單5-5 classicalInheritance.js


















































需要注意,SportsCar和CementTruck對象沒有定義自己的wheelCount和curbWeightInPounds屬性,也沒有相關(guān)的存取函數(shù),因為這些屬性和函數(shù)會從Vehicle對象繼承。
與前面一樣,需要一個簡單的HTML頁面來測試這些新對象。代碼清單5-6列出了測試這些新對象的HTML頁面。要特別注意createInheritance函數(shù),看看如何使用這個函數(shù)在Vehicle和SportsCar對象之間以及Vehicle和CementTruck對象之間創(chuàng)建繼承關(guān)系。還要注意describe函數(shù)有所修改,以試圖直接訪問wheelCount和curbWeightInPounds屬性。這樣做會返回一個undefined值。
代碼清單5-6 classicalInheritance.html






































































分別點擊頁面上的各個按鈕會得到圖5-17所示的結(jié)果。正如所料,試圖直接訪問私有屬性就會返回undefined。
圖5-17 創(chuàng)建Vehicle、SportsCar和CementTruck對象,并使用describe函數(shù)描述它們的結(jié)果。私有屬性不能直接訪問,見警告框中的undefined值