JavaScript类构造函数-构造函数是否被称为父类?

时间:2018-10-02 19:00:53

标签: javascript class ecmascript-6 metaprogramming

如果我创建以下类,则在Class1中是否有任何方法可以在不了解Class2的情况下检测实例实际上是Class2的实例?

即可以告诉Class1何时扩展父类吗?

class Class1 {
  constructor() {
    // Code to detect whether parent here
  }
}

class Class2 extends Class1 {
  constructor() {
    super();
  }
}

1 个答案:

答案 0 :(得分:6)

这就是new.target的用途-它为您提供了调用new的构造函数。所以

class Class1 {
  constructor() {
    if (new.target != Class1) {
      // Class1 is used as a parent class
    }
  }
}