[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Functions/set [Back]  [Original]

L'oprateur set - JavaScript | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

L'oprateur set

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 syntaxe set permet de lier une proprit d'un objet une fonction qui sera appele chaque tentative de modification de cette proprit.

Dans cet article

Exemple interactif

const language = {
  set current(name) {
    this.log.push(name);
  },
  log: [],
};

language.current = "EN";
language.current = "FA";

console.log(language.log);
// Expected output: Array ["EN", "FA"]

Syntaxe

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

Paramtres

prop

Le nom de la proprit 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 proprit calcul lier la fonction.

Description

En JavaScript, un mutateur (ou setter en anglais) peut tre utiis afin d'excuter une fonction chaque fois qu'on souhaite modifier la valeur d'une proprit donne. La plupart du temps, les mutateurs sont utiliss avec les accesseurs (getters) afin de crer une pseudo-proprit. Il n'est pas possible d'avoir la fois un mutateur et une valeur donne pour une mme proprit.

On notera que set :

On peut retirer un mutateur d'un objet grce l'oprateur delete.

Exemples

Dfinir un mutateur sur de nouveaux objets avec un littral objet

Dans l'exemple qui suit, on dfinit une pseudo-proprit courant pour un objet o qui, lorsqu'elle recevra une valeur, mettra jour la proprit log avec la valeur reue :

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

On notera que courant n'est pas dfini. Toute tentative pour y accder renverra undefined.

Supprimer un mutateur grce l'oprateur delete

Si on souhaite retirer un mutateur, on peut simplement utiliser l'oprateur delete :

js
delete o.courant;

Dfinir un mutateur sur un objet existant avec defineProperty

On peut galement ajouter un mutateur sur un objet d'ores et dj cr. Pour cela, on utilisera la mthode Object.defineProperty().

js
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 proprit calcul

js
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"

Spcifications

Spcification
ECMAScript 2027 LanguageSpecification
# sec-method-definitions

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page