Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. JavaScript-Fehlerreferenz
  5. ReferenceError: muss Superkonstruktor aufrufen, bevor 'this' im Konstruktor der abgeleiteten Klasse verwendet wird

Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.

View in EnglishAlways switch to English

ReferenceError: muss Superkonstruktor aufrufen, bevor 'this' im Konstruktor der abgeleiteten Klasse verwendet wird

Der JavaScript-Ausnahmefehler "must call super constructor before using 'this' in derived class constructor" tritt auf, wenn diesuper()-Funktion nicht für einen gegebenen abgeleiteten Klassenkonstruktor aufgerufen wird und der abgeleitete Konstruktor versucht, den Wert vonthis zuzugreifen, oder der abgeleitete Konstruktor bereits einen Rückgabewert hat, der kein Objekt ist.

Nachricht

ReferenceError: Must call super constructor in derived class before accessing 'this' or returning from derived constructor (V8-based)ReferenceError: must call super constructor before using 'this' in derived class constructor (Firefox)ReferenceError: 'super()' must be called in derived constructor before accessing |this| or returning non-object. (Safari)

Fehlertyp

ReferenceError

Was ist schiefgelaufen?

Dersuper()-Aufruf kann höchstens einmal für jedennew-Aufruf eines abgeleiteten Klassenkonstruktors aufgerufen werden. Meistens müssen Sie ihn genau einmal aufrufen, denn wenn Sie ihn nicht aufrufen, kann der Basiskonstruktor den Wert vonthis nicht initialisieren, sodass Sie in der abgeleiteten Konstruktorfunktion nicht aufthis zugreifen können undthis nicht als gültig konstruiertes Objekt betrachtet wird (und es eine Ausnahme auslöst, wenn der abgeleitete Konstruktor in diesem Zustand abgeschlossen wird). Der Weg, dies zu umgehen, besteht darin, ein Objekt aus dem abgeleiteten Klassenkonstruktor zurückzugeben, in diesem Fall wird das zurückgegebene Objekt als das konstruierte Objekt verwendet anstattthis, was es Ihnen ermöglicht,super() nicht aufzurufen. Dies wird jedoch selten getan.

Beispiele

Ungültige Fälle

js
class Base {  constructor() {    this.x = 1;  }}class Derived extends Base {  constructor() {    console.log(this.x);    // The Base constructor is not called yet, so this.x is undefined    // ReferenceError: must call super constructor before using 'this' in derived class constructor  }}

Gültige Fälle

js
class Base {  constructor() {    this.x = 1;  }}class Derived extends Base {  constructor() {    super();    console.log(this.x); // 1  }}

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp