Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. JavaScript-Fehlerreferenz
  5. TypeError: "x" ist kein Konstruktor

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

View in EnglishAlways switch to English

TypeError: "x" ist kein Konstruktor

Der JavaScript-Ausnahmefehler "ist kein Konstruktor" tritt auf, wenn versucht wurde, ein Objekt oder eine Variable als Konstruktor zu verwenden, aber dieses Objekt oder diese Variable ist kein Konstruktor.

Nachricht

TypeError: x is not a constructor (V8-based & Firefox & Safari)

Fehlertyp

TypeError

Was ist schiefgelaufen?

Es wurde versucht, ein Objekt oder eine Variable als Konstruktor zu verwenden, aber dieses Objekt oder diese Variable ist kein Konstruktor. Weitere Informationen darüber, was ein Konstruktor ist, finden Sie unterconstructor oder demnew Operator.

Es gibt viele globale Objekte, wie zum BeispielString oderArray, die mitnew konstruiert werden können. Einige globale Objekte sind dies jedoch nicht, und ihre Eigenschaften und Methoden sind statisch. Die folgenden in JavaScript standardmäßig integrierten Objekte sind keine Konstruktoren:Math,JSON,Symbol,Reflect,Intl,Atomics.

Generator-Funktionen können ebenfalls nicht als Konstruktoren verwendet werden.

Beispiele

Ungültige Fälle

js
const Car = 1;new Car();// TypeError: Car is not a constructornew Math();// TypeError: Math is not a constructornew Symbol();// TypeError: Symbol is not a constructorfunction* f() {}const obj = new f();// TypeError: f is not a constructor

Ein Auto-Konstruktor

Angenommen, Sie möchten einen Objekttyp für Autos erstellen. Sie möchten, dass dieser ObjekttypCar genannt wird und er soll Eigenschaften für Marke, Modell und Baujahr haben. Dazu würden Sie die folgende Funktion schreiben:

js
function Car(make, model, year) {  this.make = make;  this.model = model;  this.year = year;}

Nun können Sie ein Objekt namensmyCar wie folgt erstellen:

js
const myCar = new Car("Eagle", "Talon TSi", 1993);

In Promises

Wenn Sie ein sofort aufgelöstes oder sofort abgelehntes Promise zurückgeben, müssen Sie keinnew Promise(...) erstellen und darauf reagieren. Stattdessen verwenden Sie diestatischen MethodenPromise.resolve() oderPromise.reject().

Dies ist nicht legal (derPromise Konstruktor wird nicht korrekt aufgerufen) und wird eineTypeError: this is not a constructor-Ausnahme werfen:

js
function fn() {  return new Promise.resolve(true);}

Dies ist legal, aber unnötig lang:

js
function fn() {  return new Promise((resolve, reject) => {    resolve(true);  });}

Stattdessen geben Sie die statische Methode zurück:

js
function resolveAlways() {  return Promise.resolve(true);}function rejectAlways() {  return Promise.reject(new Error());}

Siehe auch

Help improve MDN

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

[8]ページ先頭

©2009-2025 Movatter.jp