--- title: Reflect.set() slug: Web/JavaScript/Reference/Global_Objects/Reflect/set tags: - ECMAScript 2015 - JavaScript - Méthode - Reference - Reflect translation_of: Web/JavaScript/Reference/Global_Objects/Reflect/set original_slug: Web/JavaScript/Reference/Objets_globaux/Reflect/set ---
La méthode statique Reflect.set() permet de définir ou de modifier une propriété sur un objet.
Le code source de cet exemple interactif est disponible dans un dépôt GitHub. Si vous souhaitez contribuez à ces exemples, n'hésitez pas à cloner https://github.com/mdn/interactive-examples et à envoyer une pull request !
Reflect.set(cible, cléPropriété, valeur[, récepteur])
ciblecléPropriétévaleurrécepteur{{optional_inline}}this pour l'appel à cible si un mutateur (setter) est utilisé.Un {{jsxref("Boolean","booléen","",1)}} qui indique si la définition/modification de la propriété a réussi.
Une erreur {{jsxref("TypeError")}} si cible n'est pas un {{jsxref("Object")}}.
La méthode Reflect.set permet de définir une propriété sur un objet. Elle effectue une affectation de propriété et est semblable à la syntaxe pour accéder à un propriété mais sous la forme d'une fonction.
Reflect.set()// Object
var obj = {};
Reflect.set(obj, "prop", "value"); // true
obj.prop; // "value"
// Array
var arr = ["canard", "canard", "canard"];
Reflect.set(arr, 2, "oie"); // true
arr[2]; // "oie"
// On peut l'utiliser pour tronquer un tableau
Reflect.set(arr, "length", 1); // true
arr; // ["canard"];
// Avec un seul argument
// cléPropriété et valeur valent "undefined".
var obj = {};
Reflect.set(obj); // true
Reflect.getOwnPropertyDescriptor(obj, "undefined");
// { value: undefined, writable: true, enumerable: true, configurable: true }
| Spécification | État | Commentaires |
|---|---|---|
| {{SpecName('ES2015', '#sec-reflect.set', 'Reflect.set')}} | {{Spec2('ES2015')}} | Définition initiale. |
| {{SpecName('ESDraft', '#sec-reflect.set', 'Reflect.set')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.Reflect.set")}}