Le constructeur Object crée une enveloppe (wrapper) pour représenter un objet.

Syntaxe

// Littéral objet (aussi appelé initialisateur d'objet)
{ [ nomValeurPaire[, nomValeurPaire2[, ...nomValeurPaireN] ] ] }

// Appelé comme un constructeur
new Object([valeur])

Paramètres

nomValeurPaire1, nomValeurPaire2, ... nomValeurPaireN
Des paires de noms (des chaînes de caractères) et de valeurs (n'importe quelles valeurs), le nom est séparé de la valeur par deux points (:).
valeur
N'import quelle valeur.

Description

Le constructeur Object permet de créer un objet autour d'une valeur donnée. Si la valeur est null ou undefined, un objet vide sera créé et renvoyé. Sinon, un objet du type correspondant sera renvoyé, si la valeur est déjà un objet, le constructeur renverra cette valeur.

Lorsque le constructeur est appelé comme une fonction classique (sans l'opérateur new), Object se comportera de la même façon que to new Object().

Voir également les littéraux objets.

Propriétés

Object.length
Ce constructeur a une propriété de longueur de 1.
Object.prototype
Cette propriété permet d'ajouter des propriétés à toutes les instances (c'est-à-dire tous les objets) via la chaîne de prototypes.

Méthodes

Object.assign()
Cette méthode copiant les valeurs des propriétés énumérables de un ou plusieurs objets sur un objet cible.
Object.create()
Crée un nouvel objet avec un prototype donnée et des propriétés données.
Object.defineProperty()
Ajoute une propriété à un objet, cette propriété nommée est décrite par le descripteur fourni.
Object.defineProperties()
Ajoute des propriétés à un objet qui sont décrites par les descripteurs respectifs.
Object.entries()
Renvoie un tableau contenant des paires [clé, valeur] des propriétés énumérables propres d'un objet donné.
Object.freeze()
Gèle un objet : on ne peut ni supprimer ni modifier ses propriétés.
Object.getOwnPropertyDescriptor()
Renvoie un descripteur de propriété pour une certaine propriété nommée d'un objet.
Object.getOwnPropertyDescriptors()
Renvoie un objet qui contient tous les descripteurs pour les différentes propriétés propres d'un objet.
Object.getOwnPropertyNames()
Renvoie un tableau contenant les noms de toutes les propriétés propres à l'objet qui sont énumérables et non-énumérables (les propriétés propres sont celles directement rattachées à l'objet, qui ne sont pas héritées par la chaîne de prototypes).
Object.getOwnPropertySymbols()
Renvoie un tableau de toutes les propriétés propres d'un objet qui sont des symboles (les propriétés propres sont celles qui ne sont pas héritées).
Object.getPrototypeOf()
Renvoie le prototype d'un objet donné.
Object.is()
Détermine si deux valeurs sont les mêmes. Si on compare NaN avec lui-même, cette méthode renverra true.
Object.isExtensible()
Détermine s'il est possible d'étendre un objet.
Object.isFrozen()
Détermine si un objet a été gelé.
Object.isSealed()
Détermine si un objet est scellé.
Object.keys()
Renvoie un tableau qui contient les noms de toutes les propriétés propres d'un objet qui sont énumérables (les propriétés propres sont celles qui ne sont pas héritées).
Object.preventExtensions()
Empêche l'extension de l'objet.
Object.seal()
Empêche qu'un code tierce supprime les propriétés d'un objet.
Object.setPrototypeOf()
Définit le prototype d'un objet (c'est-à-dire la propriété interne [[Prototype]])
{jsxref("Object.values()")}}
Renvoie un tableau qui contient les valeurs des propriétés propres énumérables d'un objet.

Les instances d'Object et son prototype

En JavaScript, tous les objets héritent d'Object ; tous les objets bénéficient donc des méthodes et des propriétés de Object.prototype même si ces méthodes et propriétés peuvent être surchargées si elles sont redéfinies en aval dans la chaîne de prototypes. Ainsi, certains prototypes de constructeurs fournissent leurs propres méthodes pour toString(). Les modifications apportées au prototype d'Object sont propagées sur tous les objets via la chaîne de prototypes sauf si les propriétés et/ou méthodes concernées ont été surchargées.

Propriétés

Méthodes

Exemples

Utiliser Object avec les types undefined et null

Dans les exemples suivants, on stocke un objet vide dans la variable o :

var o = new Object();
var o = new Object(undefined);
var o = new Object(null);

Utiliser Object pour créer des objets Boolean

Dans les exemples suivantes, on affecte une valeur qui est un objet Boolean à o :

// est équivalent à : o = new Boolean(true);
var o = new Object(true);
// est équivalent à : o = new Boolean(false);
var o = new Object(Boolean());

Spécifications

Spécification État Commentaires
ECMAScript 1st Edition (ECMA-262) Standard Définition initiale. Implémentée par JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
La définition de 'Object' dans cette spécification.
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Object' dans cette spécification.
Standard Ajout de Object.assign, Object.getOwnPropertySymbols, Object.setPrototypeOf, Object.is
ECMAScript Latest Draft (ECMA-262)
La définition de 'Object' dans cette spécification.
Standard évolutif Ajout de Object.entries et de Object.values et de Object.getOwnPropertyDescriptors.

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple Oui Oui Oui Oui Oui Oui
prototype Oui Oui Oui Oui Oui Oui
__count__ Non Non Non Non Non Non
__noSuchMethod__ Non Non Oui — 43 Non Non Non
__parent__ Non Non Non Non Non Non
__proto__ Oui Oui Oui11 Oui Oui
constructor Oui Oui Oui Oui Oui Oui
assign45 Oui34 Non329
create5 Oui4911.65
defineProperties5 Oui4911.65
defineProperty5 Oui49111.65.12
entries54 Oui47 Non Non10.1
freeze6 Oui49125.1
getNotifier36 — 52 Non Non Non Non Non
getOwnPropertyDescriptor5 Oui48125
getOwnPropertyDescriptors54 Oui50 Non4110
getOwnPropertyNames5 Oui49125
getOwnPropertySymbols38 Oui36 Non259
getPrototypeOf5 Oui3.5912.15
is30 Oui22 Non Oui9
isExtensible6 Oui49125.1
isFrozen6 Oui49125.1
isSealed6 Oui49125.1
keys5 Oui49125
observe36 — 52 Non Non Non Non Non
preventExtensions6 Oui49125.1
__defineGetter__ Oui Oui Oui311 Oui Oui
__defineSetter__ Oui Oui Oui311 Oui Oui
__lookupGetter__ Oui Oui Oui11 Oui Oui
__lookupSetter__ Oui Oui Oui11 Oui Oui
eval Non Non Non Non Non Non
hasOwnProperty Oui Oui Oui Oui Oui Oui
isPrototypeOf Oui Oui Oui Oui Oui Oui
propertyIsEnumerable Oui Oui Oui Oui Oui Oui
toLocaleString Oui Oui Oui Oui Oui Oui
toSource Non Non Oui Non Non Non
toString Oui Oui Oui Oui Oui Oui
unwatch Non Non1 — 58 Non Non Non
valueOf Oui Oui Oui Oui Oui Oui
watch Non Non1 — 58 Non Non Non
seal6 Oui49125.1
setPrototypeOf34 Oui3111 Oui9
unobserve36 — 52 Non Non Non Non Non
values54 Oui47 Non Oui10.1
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Support simple Oui Oui Oui Oui Oui Oui Oui
prototype Oui Oui Oui Oui Oui Oui Oui
__count__ Non Non Non Non Non Non Non
__noSuchMethod__ Non Non Non Oui — 43 Non Non Non
__parent__ Non Non Non Non Non Non Non
__proto__ Oui Oui Oui Oui Oui Oui Oui
constructor Oui Oui Oui Oui Oui Oui Oui
assign Non45 Oui Oui Non Non Oui
create Oui Oui Oui4 Oui11.5 Oui
defineProperties Oui Oui Oui Oui Oui11.5 Oui
defineProperty Oui Oui Oui4 Oui11.5 Oui
entries5454 Oui47 Non Non Non
freeze Oui Oui Oui Oui Oui Oui Oui
getNotifier Non Non Non Non Non Non Non
getOwnPropertyDescriptor Oui Oui Oui Oui Oui Oui Oui
getOwnPropertyDescriptors ?54 Oui50 Non ? ?
getOwnPropertyNames Oui Oui Oui Oui Oui Oui Oui
getOwnPropertySymbols5.138 Oui36 Non259
getPrototypeOf Oui Oui Oui4 Non Oui Oui
is Oui Oui Oui22 Non Oui9
isExtensible Oui Oui Oui Oui Oui Oui Oui
isFrozen Oui Oui Oui Oui Oui Oui Oui
isSealed Oui Oui Oui Oui Oui Oui Oui
keys Oui Oui Oui Oui Oui Oui Oui
observe Non Non Non Non Non Non Non
preventExtensions Oui Oui Oui Oui Oui Oui Oui
__defineGetter__ Oui Oui Oui Oui Oui Oui Oui
__defineSetter__ Oui Oui Oui Oui Oui Oui Oui
__lookupGetter__ Oui Oui Oui Oui Oui Oui Oui
__lookupSetter__ Oui Oui Oui Oui Oui Oui Oui
eval Non Non Non Non Non Non Non
hasOwnProperty Oui Oui Oui Oui Oui Oui Oui
isPrototypeOf Oui Oui Oui Oui Oui Oui Oui
propertyIsEnumerable Oui Oui Oui Oui Oui Oui Oui
toLocaleString Oui Oui Oui Oui Oui Oui Oui
toSource Non Non Non Oui Non Non Non
toString Oui Oui Oui Oui Oui Oui Oui
unwatch Non Non Non4 — 58 Non Non Non
valueOf Oui Oui Oui Oui Oui Oui Oui
watch Non Non Non4 — 58 Non Non Non
seal Oui Oui Oui Oui Oui Oui Oui
setPrototypeOf Oui Oui Oui Oui Oui Oui Oui
unobserve Non Non Non Non Non Non Non
values5454 Oui47 Non Oui10.3

1. Also supported in Internet Explorer 8, but only on DOM objects and with some non-standard behaviors.

2. Also supported in Safari 5, but not on DOM objects.

3. Starting with Firefox 48, this method can no longer be called at the global scope without any object. A TypeError will be thrown otherwise. Previously, the global object was used in these cases automatically, but this is no longer the case.

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, teoli, LaBoumerde, Sheppy, rat, daniel35310
 Dernière mise à jour par : SphinxKnight,