Как super() инициализирует свойства экземпляра подкласса в JavaScript?Javascript

Форум по Javascript
Ответить
Anonymous
 Как super() инициализирует свойства экземпляра подкласса в JavaScript?

Сообщение Anonymous »

Я изучаю объектно-ориентированное программирование на JavaScript, и меня смутил следующий код:

Код: Выделить всё

class Animal {
constructor(lg) {
this.legs = lg;
}
}

class Dog extends Animal {
constructor() {
super(4);
}
}

const result = new Dog();
console.log(result.legs);


Что меня смущает, так это почему экземпляр Dog имеет свойство leg, хотя: Изначально я ожидал, что result.legs будет неопределенным, или думал, что передача аргумента в super() без соответствующего параметра в конструкторе Dog может вызвать ошибку.
Мои вопросы:
  • Что именно делает super(4) делает во время создания объекта?
  • Как конструктор родительского класса присваивает свойства экземпляру подкласса?
  • Это поведение неявно для всех подклассов в JavaScript?
Я ищу концептуальное объяснение, а не просто вывод. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/798 ... javascript
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»