> В чем разница между статическими и нестатическими методами в классах JavaScript (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Сбер

Стек: JavaScript

> Пример ответа

Основное различие - в принадлежности к экземпляру класса или к самому классу. Статические методы (объявляются с ключевым словом static) вызываются непосредственно на классе, а не на его экземплярах. Они не имеют доступа к this, указывающему на конкретный объект, и не могут обращаться к свойствам экземпляра. Нестатические методы, наоборот, вызываются на созданных объектах и имеют доступ к this (текущему экземпляру) и его данным.

Пример:

JAVASCRIPT
class MathHelper {
static add(a, b) { return a + b; }
multiply(a, b) { return a * b; }
}
MathHelper.add(2, 3); // 5 - статический вызов
const helper = new MathHelper();
helper.multiply(2, 3); // 6 - вызов на экземпляре
// helper.add(2, 3); // Ошибка: add не доступен на экземпляре

Статические методы удобны для утилит, фабрик или конфигураций, не зависящих от состояния объекта. Нестатические - для операций, работающих с данными конкретного экземпляра.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью