Reflect.defineProperty()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
La méthode statique Reflect.defineProperty()
est semblable à Object.defineProperty()
mais renvoie un Boolean
.
Exemple interactif
Syntaxe
Reflect.defineProperty(cible, cléPropriété, attributs);
Paramètres
cible
-
L'objet cible sur lequel on veut définir la propriété.
cléPropriété
-
Le nom de la propriété qu'on souhaite définir ou modifier.
attributs
-
Les attributs de de la propriété qu'on ajoute ou qu'on modifie.
Valeur de retour
Un booléen qui indique si la propriété a bien été définie.
Exceptions
Description
La méthode Reflect.defineProperty
permet d'ajouter ou de modifier finement une propriété d'un objet. Pour plus de détails, voir la méthode Object.defineProperty
qui est très similaire. Object.defineProperty
renvoie l'objet et lève une TypeError
si la propriété n'a pas correctement été définie. Reflect.defineProperty
renvoie simplement un Boolean
qui indique si la propriété a été définie avec succès ou non.
Exemples
Utiliser Reflect.defineProperty()
var obj = {};
Reflect.defineProperty(obj, "x", { value: 7 }); // true
obj.x; // 7
Vérifier si la définition de propriété a réussi
Object.defineProperty
renvoie un objet si la définition a réussi ou lève une exception TypeError
sinon, ce qui implique d'utiliser un bloc try...catch
pour attraper l'erreur. Reflect.defineProperty
renvoie un booléen pour indiquer la réussite ou l'échec, un bloc if...else
suffit :
if (Reflect.defineProperty(cible, propriété, attributs)) {
// succès
} else {
// échec
}
Spécifications
Specification |
---|
ECMAScript Language Specification # sec-reflect.defineproperty |
Compatibilité des navigateurs
BCD tables only load in the browser