Object

Le typeObjectest l'undes types de données JavaScript.Il est utilisé pour stocker des ensembles de clés/valeurs et des entités plus complexes. Les objets peuvent être créés avec le constructeurObject()ou avecla syntaxe d'initialisation d'objet littérale.

Description

La quasi-totalité des objets en JavaScript sont des instances d'Object.En général, un objet hérite de propriétés (dont des méthodes) deObject.prototype,bien que ces propriétés puissent être surchargées. Il sera toutefois possible de créer unObjectqui n'obéit pas à ces règles (par exemple en utilisantObject.create(null)ou de modifier un objet après sa construction afin que ces hypothèses ne soient plus vérifiées (par exemple avecObject.setPrototypeOf()).

Les modifications apportées à l'objet prototype deObjectseront captées partousles objets à travers le chaînage des prototypes, à moins que ces propriétés soient surchargées plus bas sur la chaîne des prototypes. C'est donc un moyen puissant mais également dangereux permettant de modifier le comportement des objets.

Le constructeurObjectcrée une enveloppe objet de la valeur passée en argument.

  • Si la valeur estnullouundefined,il créera et renverra un objet vide.
  • Si la valeur est déjà un objet, il renverra la valeur.
  • Sinon, il renverra un objet dont le type objet correspond au type primitif de la valeur fournie.

Lorsqu'il n'est pas appelé dans un contexte constructeur (c'est-à-dire sans le mot-clénew),Objectse comporte de façon identique ànew Object().

Voir aussiinitialisateur d'objet / syntaxe de littéral.

Supprimer une propriété d'un objet

Il n'existe pas de méthode pourObjectqui permette de supprimer une propriété propre (à l'instar deMap.prototype.delete()). Pour ce faire, il faut utiliserl'opérateurdelete.

Constructeur

Object()

Crée un nouvel objetObjectà partir de la valeur fournie.

Méthodes du constructeurObject

Object.assign()

Copie les valeurs de toutes les propriétés propres énumérables depuis un ou plusieurs objets source dans un objet cible.

Object.create()

Crée un nouvel objet avec le prototype d'objet et les propriétés indiqués.

Object.defineProperty()

Ajoute à un objet la propriété nommée décrite par le descripteur donné.

Object.defineProperties()

Ajoute à un objet les propriétés nommées décrites par les descripteurs donnés.

Object.entries()

Retourne un tableau contenant les paires[clé, valeur]des propriétés énumérables propres (c'est-à-dire directement rattachées à l'objet) de l'objet donné et dont les clés sont des chaînes de caractères.

Object.freeze()

Gèle un objet: un autre code ne peut ni détruire ni changer aucune propriété.

Object.fromEntries()

Renvoie un nouvel objet à partir d'un itérable contenant des paires de clés-valeurs (l'opération duale deObject.entries()).

Object.getOwnPropertyDescriptor()

Retourne un descripteur de propriété pour une propriété nommée d'un objet.

Object.getOwnPropertyDescriptors()

Retourne un objet contenant tous les descripteurs des propriétés propres d'un objet.

Object.getOwnPropertyNames()

Retourne un tableau contenant les noms de toutes les propriétés énumérables et non énumérablespropresde l'objet donné.

Object.getOwnPropertySymbols()

Retourne un tableau de toutes les propriétés symboles trouvées directement dans un objet donné.

Object.getPrototypeOf()

Retourne le prototype de l'objet indiqué.

Object.is()

Détermine si deux valeurs sont la même valeur. Considère comme égales toutes les valeurs NaN (ce qui diffère à la fois de lacomparaison d'égalité abstraiteet de lacomparaison d'égalité stricte).

Object.isExtensible()

Détermine si l'extension d'un objet est permise.

Object.isFrozen()

Détermine si un objet a été gelé.

Object.isSealed()

Détermine si un objet est scellé.

Object.keys()

Retourne un tableau contenant les noms de toutes les propriétés énumérablespropresde l'objet donné.

Object.preventExtensions()

Empêche toute extension de l'objet.

Object.seal()

Empêche un autre code de détruire les propriétés d'un objet.

Object.setPrototypeOf()

Définit le prototype d'un objet (c'est-à-dire, la propriété interne[[Prototype]]).

Object.values()

Retourne le tableau des valeurs énumérables propres de l'objet donné dont les clés sont des chaînes de caractères.

Propriétés des instances

Object.prototype.constructor

Définit la fonction qui crée le prototype d'un objet.

Object.prototype.__proto__

Pointe vers l'objet ayant été utilisé comme prototype à l'instanciation de l'objet.

Méthodes des instances

Object.prototype.__defineGetter__()

Associe une fonction à une propriété, lorsqu'on accède à cette dernière, la fonction est exécutée et la valeur de retour est renvoyée.

Object.prototype.__defineSetter__()

Associe une fonction à une propriété, lorsqu'on modifie cette dernière, la fonction est exécutée pour modifier la propriété.

Object.prototype.__lookupGetter__()

Renvoie la fonction qui a été associée à la propriété indiquée avec la méthode__defineGetter__().

Object.prototype.__lookupSetter__()

Renvoie la fonction qui a été associée à la propriété indiquée avec la méthode__defineSetter__().

Object.prototype.hasOwnProperty()

Renvoie un booléen indiquant si un objet contient la propriété indiquée comme une propriété propre (directement rattachée à l'objet, pas héritée avec sa chaîne de prototypes).

Object.prototype.isPrototypeOf()

Renvoie un booléen indiquant si l'objet courant (pour lequel est appelé cette méthode) fait partie de la chaîne de prototypes de l'objet passé en argument.

Object.prototype.propertyIsEnumerable()

Renvoie un booléen indiquant sil'attribut interne ECMAScript[[Enumerable]]est fixé.

Object.prototype.toLocaleString()

Appelle la méthodetoString().

Object.prototype.toString()

Renvoie une chaîne de caractères qui représente l'objet.

Object.prototype.valueOf()

Renvoie la valeur primitive de l'objet indiqué.

Exemples

Utilisation d'Objectavec les typesundefinedetnull

Les exemples suivants stockent unObjectvide danso:

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

Utilisation d'Objectpour créer des objetsBoolean

Les exemples suivants stockent des objetsBooleandanso:

js
// Équivalent à: o = new Boolean(true);
let o = new Object(true);
js
// Équivalent à: o = new Boolean(false);
let o = new Object(Boolean());

Spécifications

Specification
ECMAScript Language Specification
#sec-object-objects

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi