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 English Always switch to English

Constructeur Object()

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

Le constructeur Object() transforme l'entrée en un objet. Son comportement dépend du type de l'entrée.

Syntaxe

js
new Object()
new Object(value)

Object()
Object(value)

Note : Object() peut être appelé avec ou sans new, mais parfois avec des effets différents. Voir la valeur de retour.

Paramètres

value Facultatif

N'importe quelle valeur.

Valeur de retour

Lorsque le constructeur Object() lui-même est appelé ou construit, sa valeur de retour est un objet :

  • Si la valeur est null ou undefined, il crée et retourne un objet vide.
  • Si la valeur est déjà un objet, il retourne cette valeur.
  • Sinon, il retourne un objet d'un type correspondant à la valeur donnée. Par exemple, passer un primitif BigInt retourne un objet wrapper BigInt.

Lorsque Object() est construit mais que new.target n'est pas le constructeur Object lui-même, le comportement est légèrement différent : il initialise un nouvel objet avec new.target.prototype comme prototype. Toute valeur d'argument est ignorée. Cela peut se produire, par exemple, lorsque Object() est appelé implicitement avec super() dans le constructeur d'une classe qui étend Object. Dans ce cas, même si vous passez un nombre à super(), la valeur de this à l'intérieur du constructeur ne devient pas une instance de Number.

Exemples

Créer un nouvel objet

js
const o = new Object();
o.toto = 42;

console.log(o);
// Object { toto: 42 }

Utiliser Object() avec des types undefined et null

Dans l'exemple suivant, on crée un objet vide dans la variable o :

js
const o = new Object();
js
const o = new Object(undefined);
js
const o = new Object(null);

Obtenir des objets enveloppants pour BigInt et Symbol

Les constructeurs BigInt() et Symbol() lèvent une erreur lorsqu'ils sont appelés avec new, pour éviter l'erreur courante consistant à créer un objet wrapper au lieu de la valeur primitive. La seule façon de créer un objet wrapper pour ces types est d'appeler Object() avec eux :

js
const objetNombre = new Number(1);
console.log(typeof objetNombre); // "object"

const objetGrandEntier = Object(1n);
console.log(typeof objetGrandEntier); // "object"

const objetSymbole = Object(Symbol("toto"));
console.log(typeof objetSymbole); // "object"

Spécifications

Spécification
ECMAScript® 2027 Language Specification
# sec-object-constructor

Compatibilité des navigateurs

Voir aussi