static
Метод или свойство самого класса, а не его объектов.
Доступно с: ES2015
Синтаксис
static method() { … } / static field = valueПримеры
Статический метод — фабрика объектов:
class User {
constructor(name, role) {
this.name = name;
this.role = role;
}
static admin(name) {
return new User(name, 'admin');
}
}
console.log(User.admin('Anna').role);Результат:
adminСтатическое поле — общий счётчик:
class Ticket {
static count = 0;
constructor() {
Ticket.count++;
this.number = Ticket.count;
}
}
new Ticket();
const second = new Ticket();
console.log(second.number, Ticket.count);Результат:
2 2Примечания
Статические члены вызываются через имя класса: User.admin(). У объекта anna.admin будет undefined. Встроенные примеры — Math.max(), Array.from(), Object.keys().
См. также
- class — Объявляет класс — шаблон для создания объектов с общими методами.
- Private fields (#) — Поля и методы, доступные только внутри класса.
В учебнике
- Приватные и статические члены — Приватные поля и методы классов JavaScript через #, инкапсуляция, статические методы и свойства.