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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章