Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
TypeError: Das Aufrufen eines eingebauten X-Konstruktors ohne new ist verboten
Die JavaScript-Ausnahme "Das Aufrufen eines eingebauten X-Konstruktors ohnenew ist verboten" tritt auf, wenn Sie versuchen, einen eingebauten Konstruktor aufzurufen, ohne das Schlüsselwortnew zu verwenden. Alle modernen Konstruktoren, wiePromise undMap, müssen mitnew aufgerufen werden.
In diesem Artikel
Meldung
TypeError: Constructor X requires 'new' (V8-based)TypeError: Promise constructor cannot be invoked without 'new' (V8-based)TypeError: calling a builtin X constructor without new is forbidden (Firefox)TypeError: calling X constructor without new is invalid (Safari)
Fehlertyp
TypeErrorWas ist schiefgelaufen?
In JavaScript sind dasAufrufen einer Funktion ohnenew und dasKonstruktionieren einer Funktion mitnew zwei unterschiedliche Operationen, und Funktionen können sich unterschiedlich verhalten, je nachdem, wie sie aufgerufen werden.
Abgesehen von den folgenden veralteten Konstruktoren müssen alle modernen Konstruktoren mitnew aufgerufen werden:
Object()Function()(und seine Unterklassen)Error()(und seine Unterklassen)RegExp()Array()
Einige andere Konstruktoren, wieDate(), und primitive Wrapper, wieString(),Number(), undBoolean(), können ebenfalls mit oder ohnenew aufgerufen werden, aber die Rückgabetypen unterscheiden sich in den beiden Fällen.
Auf jeder Konstruktorseite können Sie Informationen darüber finden, ob der Konstruktor mitnew aufgerufen werden muss.
Beispiele
>Ungültige Fälle
const m = Map(); // TypeError: calling a builtin Map constructor without new is forbiddenGültige Fälle
const m = new Map();