Конструктор класса JavaScript - конструктор называется родительским? - PullRequest
0 голосов
/ 02 октября 2018

Если я создаю следующие классы, есть ли в Class1 способ определить, является ли экземпляр фактически одним из Class2, не зная ничего о Class2?

т.е. может ли Class1 определить, когда расширяется родительский класс?

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

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

1 Ответ

0 голосов
/ 02 октября 2018

Это то, для чего был создан new.target - он дает вам конструктор, с которым был вызван new.Итак

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