我正在尝试探索 JS 类,如果我不调用
super()
,我会收到错误。
ReferenceError:在访问“this”或从派生构造函数返回之前必须调用派生类中的超级构造函数
我的要求是我只想调用 child 类的构造函数。我可以这样做吗?
class Employee {
constructor() {
console.log("I am an employee")
}
}
class Learner extends Employee {
constructor() {
console.log("I am a learner")
}
}
var learner = new Learner();
这是不可能的,并且违背了 OOP 原则。
如果您想从 Employee 和 Learner 访问相同的方法和属性,您应该创建一个名为“Person”或其他名称的父类,并为这两个类编写单独的构造函数。
所以
Employee extends Person
和Learner extends Person
。然后在 Person 内部编写您想要在两者之间共享的方法和属性。