閱讀862 返回首頁    go 技術社區[雲棲]


用 JavaScript 實現麵向對象編程中的要素

傳統的麵向對象要素:

● 可以由一個類的構造函數構造出若幹個同類的對象
JavaScript 的 new 關鍵字允許將一個函數視作構造函數,可以創建出若幹個與這個構造函數相關聯的對象,JavaScript 沒有類的概念,構造函數代替類的概念,作為這一類對象的標識。
● 類可以擁有靜態方法和靜態屬性
直接為構造函數設置屬性即可,在 JavaScript 中方法和屬性幾乎沒有什麼區別。
● 對象可以擁有實例屬性,這些屬性每個對象都有一份拷貝
應在構造函數中為新建的對象(構造函數中的 this)初始化實例屬性,這些屬性不會與其他對象共享。
● 對象可以擁有實例方法,這些方法來自於類的定義
JavaScript 對象會從其原型對象繼承屬性和方法,由 new 關鍵字創建的對象的原型默認是構造函數的原型,因此可以通過為構造函數的原型添加方法的方式,為其創建的對象添加共用的方法。
● 一個類(派生類)可以繼承自另一個類(基類),派生類可以覆蓋來自基類的方法
應將派生類的構造函數的原型的原型,設置為被繼承的的構造函數的原型,在進行方法調用時,JavaScript 會沿著原型鏈逐個查找方法。派生類可以通過為構造函數的原型設置方法的方式,覆蓋來自基類的方法。
● 在基類中調用派生類對象的方法時,如果這個方法被派生類覆蓋,那麼應調用派生類的方法(多態)
JavaScript 會沿著原型鏈查找方法,一旦在派生類找到了同名方法,就不會使用基類的方法。
詳見 JavaScript 權威指南。

最後更新:2017-10-19 09:33:17

  上一篇:go  使用sonar進行java代碼質量管理
  下一篇:go  雲服務器Windows 2012 IIS添加站點綁定域名的方法?