Что это () в JavaScript? - PullRequest
       7

Что это () в JavaScript?

0 голосов
/ 19 февраля 2019

Я понимаю ключевое слово this в javascript.Я использовал его как this.method() или this.variable =.Но что это ().См. Следующий код:

  static fromTX(tx, index) {
    return new this().fromTX(tx, index);
  }

Пожалуйста, помогите мне понять использование this () в javascript и в приведенном выше примере кода.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Давайте возьмем двусторонний подход к проблеме: Первый , this относится к текущему экземпляру в классе и является ключевым словом на многих языках.this() - это вызов конструктора, который также может содержать различные параметры. Второй , глядя на фрагмент кода, это статический метод, точнее статический фабричный метод.Ищите это, чтобы понять, почему и где использовать это и больше деталей.Фрагмент предоставляет API для создания объекта класса из параметров tx, index.Вы хотели бы сделать это, чтобы сделать его более читаемым для клиента, который вызывает этот API.Можно с уверенностью предположить, что у вас в этом методе могут быть и другие API, исключительно для создания объекта класса.Кроме того, в таких случаях конструкторы помечаются как частные, чтобы получить больший контроль над объектом.

0 голосов
/ 19 февраля 2019

Внутри статического метода this будет ссылаться на конструктор, поэтому new this() вызовет конструктор:

class Foo {
  constructor() {
    console.log('making instance');
  }
  static makeFoo() {
    return new this();
  }
}

const f = Foo.makeFoo();

Конечно, вызывать this подобным образом возможно только тогда, когда this ссылается на функцию, иначе она выдаст ошибку. Обычно , this ссылаются на объект, а не на функцию.

...