> Как расширять методы класса в JavaScript (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: Яндекс
Стек: JavaScript
> Пример ответа
В JavaScript расширять методы класса можно несколькими способами. Основной - через наследование с помощью extends и переопределение метода в подклассе, с возможностью вызова родительского метода через super.
Пример с наследованием:
JAVASCRIPTclass 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 без необходимости - это усложняет отладку.
> Похожие задачи по frontend
Какие методы для работы с контекстом this существуют и в чем их различия (bind, call, apply)
Как получить элементы массива внутри метода расширения массива в JavaScript
Почему не использовать простой численный цикл в JavaScript
Можно ли делать асинхронные запросы внутри редюсера Redux и почему
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью