From 844f5103992238c0c23203286dad16a466e89c97 Mon Sep 17 00:00:00 2001 From: julieng Date: Tue, 3 Aug 2021 08:03:09 +0200 Subject: move *.html to *.md --- .../javascript/reference/functions/set/index.html | 139 --------------------- .../javascript/reference/functions/set/index.md | 139 +++++++++++++++++++++ 2 files changed, 139 insertions(+), 139 deletions(-) delete mode 100644 files/fr/web/javascript/reference/functions/set/index.html create mode 100644 files/fr/web/javascript/reference/functions/set/index.md (limited to 'files/fr/web/javascript/reference/functions/set') diff --git a/files/fr/web/javascript/reference/functions/set/index.html b/files/fr/web/javascript/reference/functions/set/index.html deleted file mode 100644 index 2e7778875e..0000000000 --- a/files/fr/web/javascript/reference/functions/set/index.html +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: L'opérateur set -slug: Web/JavaScript/Reference/Functions/set -tags: - - ECMAScript 5 - - Functions - - JavaScript - - Reference -translation_of: Web/JavaScript/Reference/Functions/set -original_slug: Web/JavaScript/Reference/Fonctions/set ---- -
{{jsSidebar("Functions")}}
- -

La syntaxe set permet de lier une propriété d'un objet à une fonction qui sera appelée à chaque tentative de modification de cette propriété.

- -
{{EmbedInteractiveExample("pages/js/functions-setter.html")}}
- -

Syntaxe

- -
{set prop(val) { . . .}}
-{set [expression](val) { . . .}}
- -

Paramètres

- -
-
prop
-
Le nom de la propriété à lier à la fonction.
-
val
-
Un alias pour la variable qui contient la valeur qu'on souhaiterait affecter à prop.
-
expression
-
Avec ECMAScript 2015, il est également possible d'utiliser des expressions pour utiliser un nom de propriété calculé à lier à la fonction.
-
- -

Description

- -

En JavaScript, un mutateur (ou setter en anglais) peut être utiisé afin d'exécuter une fonction à chaque fois qu'on souhaite modifier la valeur d'une propriété donnée. La plupart du temps, les mutateurs sont utilisés avec les accesseurs (getters) afin de créer une pseudo-propriété. Il n'est pas possible d'avoir à la fois un mutateur et une valeur donnée pour une même propriété.

- -

On notera que set :

- -
- -
- -

On peut retirer un mutateur d'un objet grâce à l'opérateur {{jsxref("Opérateurs/L_opérateur_delete","delete")}}.

- -

Exemples

- -

Définir un mutateur sur de nouveaux objets avec un littéral objet

- -

Dans l'exemple qui suit, on définit une pseudo-propriété courant pour un objet o qui, lorsqu'elle recevra une valeur, mettra à jour la propriété log avec la valeur reçue :

- -
var o = {
-  set courant (str) {
-    this.log[this.log.length] = str;
-  },
-  log: []
-}
-
- -

On notera que courant n'est pas défini. Toute tentative pour y accéder renverra undefined.

- -

Supprimer un mutateur grâce à l'opérateur delete

- -

Si on souhaite retirer un mutateur, on peut simplement utiliser l'opérateur {{jsxref("Opérateurs/L_opérateur_delete","delete")}} :

- -
delete o.courant;
-
- -

Définir un mutateur sur un objet existant avec defineProperty

- -

On peut également ajouter un mutateur sur un objet d'ores et déjà créé. Pour cela, on utilisera la méthode {{jsxref("Object.defineProperty()")}}.

- -
var o = { a:0 };
-
-Object.defineProperty(o, "b", { set: function (x) { this.a = x / 2; } });
-
-o.b = 10; // On utilise le setter, qui affecte 10 / 2 (5) à 'a'
-console.log(o.a) // 5
- -

Utiliser un nom de propriété calculé

- -
var expr = "toto";
-
-var obj = {
-  bidule: "truc",
-  set [expr](v) { this.bidule = v; }
-};
-
-console.log(obj.bidule); // "truc"
-obj.toto = "bidule";      // le mutateur est utilisé
-console.log(obj.bidule); // "bidule"
-
- -

Spécifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpécificationÉtatCommentaires
{{SpecName('ES5.1', '#sec-11.1.5', 'Object Initializer')}}{{Spec2('ES5.1')}}Définition initiale
{{SpecName('ES6', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ES6')}}Ajout des noms de propriétés calculés
{{SpecName('ESDraft', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ESDraft')}}
- -

Compatibilité des navigateurs

- -

{{Compat("javascript.functions.set")}}

- -

Voir aussi

- - diff --git a/files/fr/web/javascript/reference/functions/set/index.md b/files/fr/web/javascript/reference/functions/set/index.md new file mode 100644 index 0000000000..2e7778875e --- /dev/null +++ b/files/fr/web/javascript/reference/functions/set/index.md @@ -0,0 +1,139 @@ +--- +title: L'opérateur set +slug: Web/JavaScript/Reference/Functions/set +tags: + - ECMAScript 5 + - Functions + - JavaScript + - Reference +translation_of: Web/JavaScript/Reference/Functions/set +original_slug: Web/JavaScript/Reference/Fonctions/set +--- +
{{jsSidebar("Functions")}}
+ +

La syntaxe set permet de lier une propriété d'un objet à une fonction qui sera appelée à chaque tentative de modification de cette propriété.

+ +
{{EmbedInteractiveExample("pages/js/functions-setter.html")}}
+ +

Syntaxe

+ +
{set prop(val) { . . .}}
+{set [expression](val) { . . .}}
+ +

Paramètres

+ +
+
prop
+
Le nom de la propriété à lier à la fonction.
+
val
+
Un alias pour la variable qui contient la valeur qu'on souhaiterait affecter à prop.
+
expression
+
Avec ECMAScript 2015, il est également possible d'utiliser des expressions pour utiliser un nom de propriété calculé à lier à la fonction.
+
+ +

Description

+ +

En JavaScript, un mutateur (ou setter en anglais) peut être utiisé afin d'exécuter une fonction à chaque fois qu'on souhaite modifier la valeur d'une propriété donnée. La plupart du temps, les mutateurs sont utilisés avec les accesseurs (getters) afin de créer une pseudo-propriété. Il n'est pas possible d'avoir à la fois un mutateur et une valeur donnée pour une même propriété.

+ +

On notera que set :

+ +
+ +
+ +

On peut retirer un mutateur d'un objet grâce à l'opérateur {{jsxref("Opérateurs/L_opérateur_delete","delete")}}.

+ +

Exemples

+ +

Définir un mutateur sur de nouveaux objets avec un littéral objet

+ +

Dans l'exemple qui suit, on définit une pseudo-propriété courant pour un objet o qui, lorsqu'elle recevra une valeur, mettra à jour la propriété log avec la valeur reçue :

+ +
var o = {
+  set courant (str) {
+    this.log[this.log.length] = str;
+  },
+  log: []
+}
+
+ +

On notera que courant n'est pas défini. Toute tentative pour y accéder renverra undefined.

+ +

Supprimer un mutateur grâce à l'opérateur delete

+ +

Si on souhaite retirer un mutateur, on peut simplement utiliser l'opérateur {{jsxref("Opérateurs/L_opérateur_delete","delete")}} :

+ +
delete o.courant;
+
+ +

Définir un mutateur sur un objet existant avec defineProperty

+ +

On peut également ajouter un mutateur sur un objet d'ores et déjà créé. Pour cela, on utilisera la méthode {{jsxref("Object.defineProperty()")}}.

+ +
var o = { a:0 };
+
+Object.defineProperty(o, "b", { set: function (x) { this.a = x / 2; } });
+
+o.b = 10; // On utilise le setter, qui affecte 10 / 2 (5) à 'a'
+console.log(o.a) // 5
+ +

Utiliser un nom de propriété calculé

+ +
var expr = "toto";
+
+var obj = {
+  bidule: "truc",
+  set [expr](v) { this.bidule = v; }
+};
+
+console.log(obj.bidule); // "truc"
+obj.toto = "bidule";      // le mutateur est utilisé
+console.log(obj.bidule); // "bidule"
+
+ +

Spécifications

+ + + + + + + + + + + + + + + + + + + + + + + + +
SpécificationÉtatCommentaires
{{SpecName('ES5.1', '#sec-11.1.5', 'Object Initializer')}}{{Spec2('ES5.1')}}Définition initiale
{{SpecName('ES6', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ES6')}}Ajout des noms de propriétés calculés
{{SpecName('ESDraft', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ESDraft')}}
+ +

Compatibilité des navigateurs

+ +

{{Compat("javascript.functions.set")}}

+ +

Voir aussi

+ + -- cgit v1.2.3-54-g00ecf