【发布时间】:2021-05-30 22:59:53
【问题描述】:
我想扩展以下类:
class Person {
constructor(name, age) {
this._name = name;
this._age = age;
}
get name() {
return this._name;
}
get age() {
return this._age;
}
}
...通过添加 sport 及其 getter:
class Athlete extends Person {
constructor(name, age, sport) {
super();
this._name = name;
this._age = age;
this._sport = sport;
}
get sport() {
return this._sport;
}
}
虽然上述方法有效,但我想避免重复基父构造函数的参数。以下方法不起作用:
class Athlete extends Person {
constructor(sport) {
super();
this._sport = sport;
}
get sport() {
return this._sport;
}
}
let athlete = new Athlete('Peter', 29, 'cricket');
console.log(athlete.name, athlete.age, athlete.sport); // name and age are not inherited, is returned 'undefined'
那么,如何在不重写基类的情况下向子类添加字段?
【问题讨论】:
标签: javascript class inheritance ecmascript-6 subclass