面向对象
面向对象注重于抽象事物,主要实现封装、继承和多态,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