> Как работает наследование в JavaScript с использованием super и методов родительского класса? (JavaScript)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: EPAM
Стек: JavaScript
> Пример ответа
Наследование в JavaScript реализуется через прототипное наследование, а ключевые слова class, extends и super являются синтаксическим сахаром над прототипами. При использовании super в конструкторе дочернего класса необходимо вызвать super() до обращения к this, так как это инициализирует родительский конструктор и создает контекст для дочернего экземпляра.
Пример:
JAVASCRIPTclass Animal {constructor(name) {this.name = name;}speak() {return `${this.name} издает звук`;}}class Dog extends Animal {constructor(name, breed) {super(name); // вызов родительского конструктораthis.breed = breed;}speak() {// вызов метода родительского класса через superconst parentSound = super.speak();return `${parentSound}, но как собака: гав-гав!`;}}const dog = new Dog('Рекс', 'Овчарка');console.log(dog.speak()); // "Рекс издает звук, но как собака: гав-гав!"
Ключевые моменты:
super()в конструкторе вызывает родительский конструктор и должен быть вызван до использованияthis.super.methodName()позволяет обратиться к методам родительского класса, даже если они переопределены в дочернем.- Цепочка прототипов: методы дочернего класса переопределяют родительские, но
superсохраняет доступ к ним.
> Похожие задачи по frontend
Какие есть стандарты JavaScript
Что такое ECMAScript
Как отслеживать изменения поля объекта без изменения исходного кода?
Как колбэк из setTimeout попадает к выполнению?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью