JS設計模式——封裝對象、繼承、多態

面向對象

面向對象注重於抽象事物,主要實現封裝、繼承和多態,JS通過函數和原型(es5)模擬了傳統面向對象編程中類的概念實現了面向對象的編程模式,es6中的class實現了面向對象。

  • 多態:不同對象調用相同方法產生不同結果

三、JS的多態實現

JS中實現多態是在父類的原型方法上調用實例方法,在子類中重寫實例方法實現多態。

function Base() {}
// 給父類添加原型方法
Base.prototype.initial = function() {
  this.initial()
}
function SubA() {
  // 子類在 實例方法 中重寫函數
  this.initial = () => {
    console.log('SubA initial')
  }
}
function SubB() {
  this.initial = () => {
    console.log('SubB initial')
  }
}
// 實例化兩個子類
let subA = new SubA()
let subB = new SubB()
// 調用父類原型上的方法
subA.initial()
subB.initial()

// 輸出 SubA initial  
// SubB initial
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章