Не могу понять в чем проблема, подскажите пожалуйста
И еще, может ли кто-нибудь объяснить зачем нужно 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
можно посмотреть в справке.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Не пойму кусок кода из статьи про примеси(mixin),там где "примешивают" замыканияКонкретно в строках 1 и 2 не понятно что происходит?Ссылка на статью...
Сделал отдельным файлом конструктор класса с методами, его импортирую в компонент VueКак можно вызвать метод компонента Vue из класса, созданного...
Не работает axios пишет ошибку Cannot read property 'post' of undefined вот пример кода