1. ES5實現 父類: 子類繼承父類: 2. ES6實現 父類: 子類繼承: ...
1. ES5實現
父類:
// 職員類
function Employees(id,name,salary) { // 屬性
this.id = id;
this.name = name;
this.salary = salary;
}
Employees.prototype.work = function (dish) { // 方法
return dish
};
子類繼承父類:
function Waiter(id, name, salary) {
Employees.call(this, id, name, salary) // 使用call, 繼承父類
}
Waiter.prototype = Object.create(Employees.prototype);// 繼承父類原型
Waiter.prototype.constructor= Waiter; // 設置constructor指向自己
Waiter.prototype.work = function (arg) { // 重寫原型上的方法
if (arg instanceof Array){
return arg
} else { //上菜行為
console.log('not a array')
}
};
2. ES6實現
父類:
// 職員類
class Employees {
constructor(id, name, salary){ // 屬性
this.id = id;
this.name = name;
this.salary = salary;
}
work(dish){ // 方法
return dish
}
}
子類繼承:
// Waiter
class Waiter extends Employees { // 使用關鍵字extends,繼承父類
constructor(...arg){ // 繼承父類
super(...arg)
}
work(arg){ // 重寫父類中work方法
if (arg instanceof Array){ //數組的話,記錄點菜
return arg
} else { //上菜行為
console.log('上菜')
}
}
}