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

View in English Always switch to English

TypeError: class constructors must be invoked with 'new'

Der JavaScript-Fehler "class constructors must be invoked with 'new'" tritt auf, wenn ein Klassenkonstruktor ohne das Schlüsselwort new aufgerufen wird. Alle Klassenkonstruktoren müssen mit new aufgerufen werden.

Nachricht

TypeError: Class constructor X cannot be invoked without 'new' (V8-based)
TypeError: Class constructors cannot be invoked without 'new' (V8-based)
TypeError: class constructors must be invoked with 'new' (Firefox)
TypeError: Cannot call a class constructor without |new| (Safari)

Fehlertyp

TypeError

Was ist schiefgelaufen?

In JavaScript sind das Aufrufen einer Funktion ohne new und das Konstruieren einer Funktion mit new zwei verschiedene Operationen, und Funktionen können sich unterschiedlich verhalten, je nachdem, wie sie aufgerufen werden.

Traditionell wurden JavaScript-Funktionen sowohl als Konstruktoren als auch als normale Funktionen verwendet und können erkennen, wie sie aufgerufen wurden, indem sie new.target verwenden. Klassenkonstruktoren sind jedoch immer Konstruktoren und können nicht als normale Funktionen aufgerufen werden.

Beispiele

Ungültige Fälle

js
class X {}

X(); // TypeError: class constructors must be invoked with 'new'

Gültige Fälle

js
class X {}

new X();

Siehe auch