Как работает `new this` внутри статических методов

Ответы
Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
13 апреля 2022

Конструкция new this внутри статического метода вызовет конструктор того класса, внутри которого этот метод определён, поэтому этот код

class Test {
  constructor(message = 'hello') {
    this.message = message;
  }
  static getNewInstance(message) {
    return new Test(message);
  }
}

аналогичен этому

class Test {
  constructor(message = 'hello') {
    this.message = message;
  }
  static getNewInstance(message) {
    return new this(message);
  }
}