Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. Référence
  4. Référence des erreurs JavaScript
  5. TypeError: "x" is not a constructor

Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in EnglishAlways switch to English

TypeError: "x" is not a constructor

Message

TypeError: Object doesn't support this action (Edge)TypeError: "x" is not a constructorTypeError: Math is not a constructorTypeError: JSON is not a constructorTypeError: Symbol is not a constructorTypeError: Reflect is not a constructorTypeError: Intl is not a constructorTypeError: SIMD is not a constructorTypeError: Atomics is not a constructor

Type d'erreur

TypeError

Quel est le problème ?

Une variable ou un objet a été utilisé comme un constructeur alors que cet objet ou cette variable n'est pas un constructeur. Pour plus d'informations sur les constructeurs, voir la page surl'opérateurnew.

De nombreux objets globaux tels queString ouArray, sont constructibles avecnew. Cependant, d'autres objets globaux ne le sont pas (leurs propriétés et méthodes sont statiques). Les objets standards natifs suivants ne sont pas des constructeur :Math,JSON,Symbol,Reflect,Intl,SIMD,Atomics.

Les fonctions génératrices ne peuvent pas non plus être utilisées comme des constructeurs.

Exemples

Exemples invalides

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

Créer un constructeurvoiture

Imaginons qu'on veuille représenter des voitures sous forme d'objets. On appellera ce typevoiture et on lui ajoutera des propriétés pour le fabricant, le modèle et l'année. Pour cela, on pourra écrire la fonction suivante :

js
function Voiture(fabriquant, modèle, année) {  this.fabriquant = fabriquant;  this.modèle = modèle;  this.année = année;}

On peut désormais créer un objetmaVoiture comme ceci :

js
var maVoiture = new Voiture("Renault", "Twingo", 2006);

Avec les promesses

Lorsqu'on renvoie une promesse immédiatement tenue ou rompue, il n'est pas nécessaire d'utilisernew Promise() pour la manipuler. Il faut plutôt utiliser les méthodes statiquesPromise.resolve() ouPromise.reject() :

js
// Dans ce cas on aura une exception// "this is not a constructor"return new Promise.resolve(true);
js
// Cette formulation fonctionne mais// est inutilement longuereturn new Promise((resolve, reject) => {  resolve(true);});// On pourra autrement utiliser les// méthodes statiquesreturn Promise.resolve(true);return Promise.reject(false);

Voir aussi

Help improve MDN

Learn how to contribute

Cette page a été modifiée le par lescontributeurs du MDN.


[8]ページ先頭

©2009-2025 Movatter.jp