> В чем разница между статическими и нестатическими методами в классах JavaScript (JavaScript)
Уровень: senior · Роль: backend · Категория: Технические вопросы
Компании: Lesta Games
Стек: JavaScript
> Пример ответа
Основное различие - в привязке к экземпляру класса. Статические методы (объявляются через ключевое слово static) принадлежат самому классу, а не его объектам. Они вызываются через имя класса: ClassName.method(). Нестатические методы (обычные методы) принадлежат каждому экземпляру и вызываются через объект: instance.method().
Статические методы не имеют доступа к this, ссылающемуся на экземпляр, и не могут обращаться к свойствам или методам конкретного объекта. Они часто используются для утилит, фабрик или операций, не зависящих от состояния экземпляра (например, Array.from() или Math.max()). Нестатические методы, наоборот, работают с данными конкретного объекта через this.
Пример:
JAVASCRIPTclass User {constructor(name) {this.name = name;}// нестатический метод - работает с экземпляромgreet() {return `Привет, ${this.name}`;}// статический метод - не зависит от экземпляраstatic isUser(obj) {return obj instanceof User;}}const user = new User('Анна');console.log(user.greet()); // "Привет, Анна"console.log(User.isUser(user)); // true// console.log(User.greet()); // Ошибка — greet не статический// console.log(user.isUser(user)); // Ошибка — isUser не доступен из экземпляра
Ключевое отличие в контексте: статические методы - для логики уровня класса, нестатические - для поведения объектов.
> Похожие задачи по backend
В чем преимущество PostgreSQL перед MongoDB
Столкнулись ли вы с типами данных массивы и JSON в PostgreSQL
В чем отличия языков программирования Java, Python и JavaScript
В чем преимущества JSONB над JSON в базе данных?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью