Не могу понять в чем проблема, подскажите пожалуйста
И еще, может ли кто-нибудь объяснить зачем нужно super? Зачем туда передаются аргументы?
class Animal {
constructor(name, voice) {
this.name = name;
this.voice = voice;
}
say() {
console.log(`${this.name} said ${this.voice}`);
}
}
class Bird extends Animal {
сonstructor(name, voice, canFly) {
super(name, voice);
this.canFly = canFly;
}
}
const duck = new Bird('Dick', 'Crack');
duck.say();
duck.say();
В коде в вопросе, в классе Bird опечатка, первая буква c - не английская, что делает описанный метод, не конструктором, а обычным методом.
Если исправить - то ошибка использования super уйдет.
class Animal {
constructor(name, voice) {
this.name = name;
this.voice = voice;
}
say() {
console.log(`${this.name} said ${this.voice}`);
}
}
class Bird extends Animal {
constructor(name, voice, canFly) {
super(name, voice);
this.canFly = canFly;
}
}
const duck = new Bird('Dick', 'Crack');
duck.say();
duck.say();
Для чего в этом случае нужно super?
Для того, чтобы можно было вызвать конструктор базового класса, и проинициализировать все необходимые поля.
Если его не вызывать, то на уровне языка решено было запретить обращаться к this, который указывает на создаваемый объект, так как он может быть не инициализированным.
Еще одним примером использования ключевого слова super может являться обращение к полям и методам базового класса, например:
class Animal {
constructor(name, voice) {
this.name = name;
this.voice = voice;
}
say() {
console.log(`${this.name} said ${this.voice}`);
}
}
class Bird extends Animal {
constructor(name, voice, canFly) {
super(name, voice);
this.canFly = canFly;
}
say() {
console.log('Bird say');
super.say();
}
}
const duck = new Bird('Dick', 'Crack');
duck.say();
duck.say();
Подробнее о super можно посмотреть в справке.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники