Wie initialisiert super() Eigenschaften einer Unterklasseninstanz in JavaScript?JavaScript

Javascript-Forum
Anonymous
 Wie initialisiert super() Eigenschaften einer Unterklasseninstanz in JavaScript?

Post by Anonymous »

Ich lerne objektorientierte Programmierung in JavaScript und bin durch den folgenden Code verwirrt:

Code: Select all

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

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

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


Was mich verwirrt, ist, warum die Dog-Instanz mit einer Beine-Eigenschaft endet, obwohl:
  • Code: Select all

    DogDer Konstruktor von 
    hat keine Parameter
  • Code: Select all

    legs
    ist in der Klasse Dog nicht explizit definiert
Ich habe zunächst erwartet, dass result.legs undefiniert ist, oder dachte, dass die Übergabe eines Arguments an super() ohne einen entsprechenden Parameter im Konstruktor von Dog einen Fehler verursachen könnte.
Meine Fragen sind:
  • Was genau bewirkt super(4) während der Objektkonstruktion tun?
  • Wie weist der übergeordnete Klassenkonstruktor der Unterklasseninstanz Eigenschaften zu?
  • Ist dieses Verhalten für alle Unterklassen in JavaScript implizit?
Ich suche nach einer konzeptionellen Erklärung und nicht nur nach der Ausgabe. Vielen Dank.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post