вызов статической функции в классе в другой вспомогательной функции в том же файле

1

У меня есть класс в файле, который содержит другие статические функции, которые вызывается в других js файлах.

module.export = class myClass{
  static create(){
    ...
  }
}

// helpers 
function callCreate(){
  ..
}

Я хочу вызвать статическую функцию myClass в вспомогательной функции callCreate. Как я могу это сделать?

  • 0
    статические члены класса доступны как: Class.staticVar . В вашем случае это будет myClass.create .
Теги:
ecmascript-6

1 ответ

2
Лучший ответ

Статические члены класса доступны как:

class MyClass {

  property() {
    console.log('i am normal member');
  }

  static func() {
    console.log('i am static member');
  }

  static funcThis() {
    console.log('i am static member');
    console.log(this === MyClass); // true
    this.func(); // will run fine as a static member of a class
    this.property(); // will give error as a normal member of a class
  }

}

(new MyClass()).property();

MyClass.func();

MyClass.funcThis();

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

Примечание. Как указано @FelixKling внутри статической функции, this будет относиться непосредственно к классу.

Совет. Всегда используйте PascalCase для обозначения вашего класса.

  • 1
    «Вот почему вы не можете использовать this внутри статической функции». Это не совсем верно. Конечно, вы можете использовать this (в каждой функции есть this ), но это будет относиться к MyClass .
  • 0
    @FelixKling, я думаю, что вы хотите сказать « но это не будет относиться к MyClass ».
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню