Was ist das Ergebnis dieses Ausdrucks?
typeof (new (class F extends (String, Array) { })).substring

Erläuterung der typeof-Ausdrucks in JavaScript

In JavaScript liefert der "typeof"-Operator als Ergebnis einen String, der die Art eines Operanden angibt. Wenn der Operand ein Objekt ist, ist das Ergebnis normalerweise "object".

Schauen wir uns jetzt den Ausdruck an, um ihn besser zu verstehen:

typeof (new (class F extends (String, Array) { })).substring

Was versucht dieser Code zu erreichen? Hier versucht der Programmierer, eine neue Klasse namens F zu erstellen, die sowohl von der String- als auch von der Array-Klasse erbt. Aber JavaScript unterstützt keine Mehrfachvererbung.

Wenn ein Komma verwendet wird, um mehrere Ausdrücke zu trennen, wird nur der letzte Ausdruck als Wert akzeptiert. Deshalb ist hier class F eigentlich eine Unterklasse von Array, weil Array der letzte Ausdruck ist.

Das new Schlüsselwort erstellt eine neue Instanz der Klasse. In diesem Fall wird substring als Eigenschaft aufgerufen, die nicht existiert, wodurch undefined zurückgegeben wird. Wenn typeof undefined aufgerufen wird, gibt es undefined als String zurück.

Im Allgemeinen sollten Sie beim Schreiben von JavaScript immer eine klare und lesbare Syntax verwenden, um solche Verwirrungen und Fehler zu vermeiden. Bei der Vererbung sollte eine Klasse immer nur von einer anderen Klasse erben, um die Lesbarkeit und Verständlichkeit des Codes zu erhöhen und mögliche Fehler zu vermeiden.

Hoffentlich bietet diese Erklärung einen klaren Einblick in das Verständnis von typeof und Vererbung in JavaScript.

Finden Sie das nützlich?