Узел Создание нового объекта из метода класса - PullRequest
0 голосов
/ 29 января 2019

Что такое версия узла php: new static()?

В одном из моих статических методов моего класса мне нужно создать новый экземпляр того же класса.

class User {
  static find() {
    const newUser = new this(); // new static(); in PHP
  }

}

Пример выше работает, но я получил ошибку linting:

"new" operators should be used with functions

Теперь мне интересно, как правильно это сделать?

Пробовал new this.constructor() но этовозвращая функцию, а не объект.

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Использование

const newUser = new this.prototype.constructor();
0 голосов
/ 29 января 2019

Вы можете создать новый класс по его имени, даже если вы находитесь внутри самого класса.
Точно так:

class User {
    static find() {
        const newUser = new User();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...