У меня есть класс в файле, который содержит другие статические функции, которые вызывается в других js файлах.
module.export = class myClass{
static create(){
...
}
}
// helpers
function callCreate(){
..
}
Я хочу вызвать статическую функцию myClass
в вспомогательной функции callCreate
. Как я могу это сделать?
Статические члены класса доступны как:
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
для обозначения вашего класса.
this
внутри статической функции». Это не совсем верно. Конечно, вы можете использовать this
(в каждой функции есть this
), но это будет относиться к MyClass
.
Class.staticVar
. В вашем случае это будетmyClass.create
.