面向對象
面向對象注重於抽象事物,主要實現封裝、繼承和多態,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