Object : méthode statique defineProperties()
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.
La méthode statique Object.defineProperties() définit de nouvelles propriétés ou modifie des propriétés existantes directement sur un objet, en renvoyant l'objet.
Exemple interactif
const object = {};
Object.defineProperties(object, {
property1: {
value: 42,
writable: true,
},
property2: {},
});
console.log(object.property1);
// Résultat attendu : 42
Syntaxe
Object.defineProperties(obj, props)
Paramètres
obj-
L'objet sur lequel définir ou modifier des propriétés.
props-
Un objet dont les clés représentent les noms des propriétés à définir ou à modifier et dont les valeurs sont des objets décrivant ces propriétés. Chaque valeur dans
propsdoit être soit un descripteur de données, soit un descripteur d'accesseur ; elle ne peut pas être les deux (voirObject.defineProperty()pour plus de détails).Les descripteurs de données et les descripteurs d'accesseurs peuvent éventuellement contenir les clés suivantes :
configurable-
truesi et seulement si le type de ce descripteur de propriété peut être modifié et si la propriété peut être supprimée de l'objet correspondant. Par défaut surfalse. enumerable-
truesi et seulement si cette propriété apparaît lors de l'énumération des propriétés de l'objet correspondant. Par défaut surfalse.
Un descripteur de données possède également les clés optionnelles suivantes :
value-
La valeur associée à la propriété. Peut être n'importe quelle valeur JavaScript valide (nombre, objet, fonction, etc.). Par défaut sur
undefined. writable-
truesi et seulement si la valeur associée à la propriété peut être modifiée avec un opérateur d'affectation. Par défaut surfalse.
Un descripteur d'accesseur possède également les clés optionnelles suivantes :
get-
Une fonction qui sert d'accesseur pour la propriété, ou
undefineds'il n'y a pas d'accesseur. La valeur de retour de la fonction est utilisée comme valeur de la propriété. Par défaut surundefined. set-
Une fonction qui sert de mutateur pour la propriété, ou
undefineds'il n'y a pas de mutateur. La fonction reçoit comme seul argument la nouvelle valeur assignée à la propriété. Par défaut surundefined.
Si un descripteur ne possède aucune des clés
value,writable,getetset, il est traité comme un descripteur de données. Si un descripteur possède à la fois les clésvalueouwritableet les clésgetouset, une exception est levée.
Valeur de retour
L'objet passé à la fonction, éventuellement modifié.
Exemples
>Utiliser Object.defineProperties()
const obj = {};
Object.defineProperties(obj, {
propriete1: {
value: true,
writable: true,
},
propriete2: {
value: "Bonjour",
writable: false,
},
// etc. etc.
});
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.defineproperties> |