> Как расширять методы класса в JavaScript (JavaScript)

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

Компании: Яндекс

Стек: JavaScript

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

В JavaScript расширять методы класса можно несколькими способами. Основной - через наследование с помощью extends и переопределение метода в подклассе, с возможностью вызова родительского метода через super.

Пример с наследованием:

JAVASCRIPT
class Animal {
speak() {
return 'Животное издает звук';
}
}
class Dog extends Animal {
speak() {
// Расширяем: вызываем родительский метод и добавляем новое поведение
return `${super.speak()}, но собака лает: Гав!`;
}
}
const dog = new Dog();
console.log(dog.speak()); // "Животное издает звук, но собака лает: Гав!"

Альтернативные подходы:

  • Прототипное наследование (без class): можно переопределить метод в прототипе дочернего конструктора.
  • Mixin-ы: для композиции функциональности из нескольких источников.
  • Декораторы (экспериментальные, требуют Babel): @override или кастомные декораторы для расширения.

Важно: При расширении метода всегда используйте super.метод() для сохранения базового поведения, если оно нужно. Избегайте мутации прототипов в runtime без необходимости - это усложняет отладку.

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

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