Le constructeur Object crée un wrapper d'objet.

Syntaxe

// Initialisateur d'objet ou littéral { [ paireNomValeur1[, paireNomValeur2[,
 ...paireNomValeurN] ] ] }

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

Paramètres

paireNomValeur1, paireNomValeur2, ... paireNomValeurN
Paires de noms (chaînes) et de valeurs (toutes valeurs) où le nom est séparé de la valeur par deux points (:).
valeur
Toute valeur.

Description

Le constructeur Object crée un wrapper d'objet pour la valeur donnée. Si la valeur est null ou undefined, il créera et retournera un objet vide, sinon, il retournera un objet du Type qui correspond à la valeur donnée. Si la valeur est déjà un objet, le constructeur retournera cette valeur.

Lorsqu'il n'est pas appelé dans un contexte contructeur, Object se comporte de façon identique à new Object().

Voir aussi initialisateur d'objet / syntaxe de littéral.

Propriétés du contructeur Object

Object.length
A une valeur de 1.
Object.prototype
Permet l'ajout de propriétés à tous les objets de type Object.

Méthodes du contructeur Object

Object.assign()
Copie les valeurs de toutes 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 de l'objet donné.
Object.freeze()
Gèle un objet : un autre code ne peut ni détruire ni changer aucune propriété.
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érables propres de 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 la Comparaison d'Égalité Abstraite et de la Comparaison 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érables propres de 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-à-d, la propriété interne [[Prototype]]).
Object.values()
Retourne le tableau des valeurs énumérables propres de l'objet donné.

Instances d'Object et objet de prototype Object

Tous les objets en JavaScript descendent d'Object ; tous les objets héritent des méthodes et des propriétés de Object.prototype, même si elles peuvent être surchargées. Par exemple, d'autres prototypes de constructeurs surchargent la propriété du constructor et fournissent leurs propres méthodes toString(). Les changements apportés à l'objet de prototype Object sont propagées à tous les objets, à moins que les propriétés et méthodes auxquelles s'appliquent ces changements ne soient surchargées plus loin dans la chaîne de prototypes.

Propriétés

Object.prototype.constructor
Specifies the function that creates an object's prototype.
Object.prototype.__proto__
Points to the object which was used as prototype when the object was instantiated.
Object.prototype.__noSuchMethod__
Allows a function to be defined that will be executed when an undefined object member is called as a method.
Object.prototype.__count__
Used to return the number of enumerable properties directly on a user-defined object, but has been removed.
Object.prototype.__parent__
Used to point to an object's context, but has been removed.

Méthodes

Object.prototype.__defineGetter__()
Associates a function with a property that, when accessed, executes that function and returns its return value.
Object.prototype.__defineSetter__()
Associates a function with a property that, when set, executes that function which modifies the property.
Object.prototype.__lookupGetter__()
Returns the function associated with the specified property by the __defineGetter__() method.
Object.prototype.__lookupSetter__()
Returns the function associated with the specified property by the __defineSetter__() method.
Object.prototype.hasOwnProperty()
Returns a boolean indicating whether an object contains the specified property as a direct property of that object and not inherited through the prototype chain.
Object.prototype.isPrototypeOf()
Returns a boolean indicating whether the object this method is called upon is in the prototype chain of the specified object.
Object.prototype.propertyIsEnumerable()
Returns a boolean indicating if the internal ECMAScript [[Enumerable]] attribute is set.
Object.prototype.toSource()
Returns string containing the source of an object literal representing the object that this method is called upon; you can use this value to create a new object.
Object.prototype.toLocaleString()
Calls toString().
Object.prototype.toString()
Returns a string representation of the object.
Object.prototype.unwatch()
Removes a watchpoint from a property of the object.
Object.prototype.valueOf()
Returns the primitive value of the specified object.
Object.prototype.watch()
Adds a watchpoint to a property of the object.
Object.prototype.eval()
Used to evaluate a string of JavaScript code in the context of the specified object, but has been removed.

Suppression d'une propriété dans un objet

Il n'y a aucune méthode dans un Object lui-même pour supprimer ses propres propriétés (par exemple, comme Map.prototype.delete()). Pour ce faire, il faut utiliser l'opérateur delete.

Exemples

Utilisation d'Object avec les types undefined et null

Les exemples suivants stockent un Object vide dans o :

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

Utilisation d'Object pour créer des objets Boolean

Les exemples suivants stockent des objets Boolean dans o :

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

Spécifications

Spécification Statut Commentaire
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.
Projet Ajout de Object.entries, de Object.values et de Object.getOwnPropertyDescriptors.

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple Oui Oui1 Oui Oui Oui
prototype Oui Oui1 Oui Oui Oui
__count__ Non Non Non Non Non Non
__noSuchMethod__ Non Non1 — 43 Non Non Non
__parent__ Non Non Non Non Non Non
__proto__ Oui Oui111 Oui Oui
constructor Oui Oui1 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 Oui1311 Oui Oui
__defineSetter__ Oui Oui1311 Oui Oui
__lookupGetter__ Oui Oui111 Oui Oui
__lookupSetter__ Oui Oui111 Oui Oui
eval Non Non Non Non Non Non
hasOwnProperty Oui Oui1 Oui Oui Oui
isPrototypeOf Oui Oui Oui Oui Oui Oui
propertyIsEnumerable Oui Oui Oui Oui Oui Oui
toLocaleString Oui Oui1 Oui Oui Oui
toSource Non Non1 Non Non Non
toString Oui Oui1 Oui Oui Oui
unwatch Non Non1 — 58 Non Non Non
valueOf Oui Oui1 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 AndroidOpera AndroidiOS SafariSamsung Internet
Support simple Oui Oui Oui4 Oui Oui ?
prototype Oui Oui Oui4 Oui Oui ?
__count__ Non Non Non Non Non Non ?
__noSuchMethod__ Non Non Non4 — 43 Non Non ?
__parent__ Non Non Non Non Non Non ?
__proto__ Oui Oui Oui4 Oui Oui ?
constructor Oui Oui Oui4 Oui Oui ?
assign Non45 Oui34 Non Oui ?
create Oui Oui Oui411.5 Oui ?
defineProperties Oui Oui Oui411.5 Oui ?
defineProperty Oui Oui Oui411.5 Oui ?
entries5454 Oui47 Non Non ?
freeze Oui Oui Oui4 Oui Oui ?
getNotifier Non Non Non Non Non Non ?
getOwnPropertyDescriptor Oui Oui Oui4 Oui Oui ?
getOwnPropertyDescriptors ?54 Oui50 ? ? ?
getOwnPropertyNames Oui Oui Oui4 Oui Oui ?
getOwnPropertySymbols5.138 Oui36259 ?
getPrototypeOf Oui Oui Oui4 Oui Oui ?
is Oui Oui Oui22 Oui9 ?
isExtensible Oui Oui Oui4 Oui Oui ?
isFrozen Oui Oui Oui4 Oui Oui ?
isSealed Oui Oui Oui4 Oui Oui ?
keys Oui Oui Oui4 Oui Oui ?
observe Non Non Non Non Non Non ?
preventExtensions Oui Oui Oui4 Oui Oui ?
__defineGetter__ Oui Oui Oui4 Oui Oui ?
__defineSetter__ Oui Oui Oui4 Oui Oui ?
__lookupGetter__ Oui Oui Oui4 Oui Oui ?
__lookupSetter__ Oui Oui Oui4 Oui Oui ?
eval Non Non Non Non Non Non ?
hasOwnProperty Oui Oui Oui4 Oui Oui ?
isPrototypeOf Oui Oui Oui Oui Oui Oui ?
propertyIsEnumerable Oui Oui Oui Oui Oui Oui ?
toLocaleString Oui Oui Oui4 Oui Oui ?
toSource Non Non Non4 Non Non ?
toString Oui Oui Oui4 Oui Oui ?
unwatch Non Non Non4 — 58 Non Non ?
valueOf Oui Oui Oui4 Oui Oui ?
watch Non Non Non4 — 58 Non Non ?
seal Oui Oui Oui4 Oui Oui ?
setPrototypeOf Oui Oui Oui31 Oui Oui ?
unobserve Non Non Non Non Non Non ?
values5454 Oui47 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

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