| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Errors/Not_a_constructor | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
TypeError: Object doesn't support this action (Edge) TypeError: "x" is not a constructor TypeError: Math is not a constructor TypeError: JSON is not a constructor TypeError: Symbol is not a constructor TypeError: Reflect is not a constructor TypeError: Intl is not a constructor TypeError: SIMD is not a constructor TypeError: Atomics is not a constructor
TypeError
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 sur l'oprateur new.
De nombreux objets globaux tels que String ou Array, sont constructibles avec new. Cependant, d'autres objets globaux ne le sont pas (leurs proprits et mthodes sont statiques). Les objets standards natifs suivants ne sont pas des constructeur : Math, JSON, Symbol, Reflect, Intl, SIMD, Atomics.
Les fonctions gnratrices ne peuvent pas non plus tre utilises comme des constructeurs.
var Voiture = 1;
new Voiture();
// TypeError: Voiture is not a constructor
new Math();
// TypeError: Math is not a constructor
new Symbol();
// TypeError: Symbol is not a constructor
function* f() {}
var obj = new f();
// TypeError: f is not a constructor
voitureImaginons qu'on veuille reprsenter des voitures sous forme d'objets. On appellera ce type voiture et on lui ajoutera des proprits pour le fabricant, le modle et l'anne. Pour cela, on pourra crire la fonction suivante :
function Voiture(fabriquant, modle, anne) {
this.fabriquant = fabriquant;
this.modle = modle;
this.anne = anne;
}
On peut dsormais crer un objet maVoiture comme ceci :
var maVoiture = new Voiture("Renault", "Twingo", 2006);
Lorsqu'on renvoie une promesse immdiatement tenue ou rompue, il n'est pas ncessaire d'utiliser new Promise() pour la manipuler. Il faut plutt utiliser les mthodes statiques Promise.resolve() ou Promise.reject() :
// Dans ce cas on aura une exception
// "this is not a constructor"
return new Promise.resolve(true);
// Cette formulation fonctionne mais
// est inutilement longue
return new Promise((resolve, reject) => {
resolve(true);
});
// On pourra autrement utiliser les
// mthodes statiques
return Promise.resolve(true);
return Promise.reject(false);
Cette page a t modifie le 7 sept. 2026 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |