我不想调用父构造函数。我们可以为此做点什么吗?

问题描述 投票:0回答:1

我正在尝试探索 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();
javascript class inheritance
1个回答
0
投票

这是不可能的,并且违背了 OOP 原则。

如果您想从 Employee 和 Learner 访问相同的方法和属性,您应该创建一个名为“Person”或其他名称的父类,并为这两个类编写单独的构造函数。

所以

Employee extends Person
Learner extends Person
。然后在 Person 内部编写您想要在两者之间共享的方法和属性。

© www.soinside.com 2019 - 2024. All rights reserved.