| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/set | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis septembre 2016.
La mthode handler.set() est une trappe permettant d'intercepter les oprations visant dfinir ou modifier la valeur d'une proprit.
const monster1 = { eyeCount: 4 };
const handler1 = {
set(obj, prop, value) {
if (prop === "eyeCount" && value % 2 !== 0) {
console.log("Monsters must have an even number of eyes");
} else {
return Reflect.set(...arguments);
}
},
};
const proxy1 = new Proxy(monster1, handler1);
proxy1.eyeCount = 1;
// Expected output: "Monsters must have an even number of eyes"
console.log(proxy1.eyeCount);
// Expected output: 4
proxy1.eyeCount = 2;
console.log(proxy1.eyeCount);
// Expected output: 2
var p = new Proxy(cible, {
set: function (cible, proprit, valeur, rcepteur) {},
});
Les paramtres suivants sont passs la mthode set. this est li au gestionnaire.
cibleL'objet cible.
propritLe nom ou le symbole (Symbol) de la proprit dfinir.
valeurLa nouvelle valeur dfinir pour la proprit.
rcepteurL'objet intialement vis par l'affectation. Gnralement ce sera le proxy lui-mme. Le gestionnaire set peut galement tre appel indirectement, via la chane de prototypes ou d'autres faons. Par exemple, si on excute l'instruction obj.nom = "Jean", et qu'obj n'est pas un proxy ni ne possde de proprit nom mais s'il possde un proxy dans sa chane de prototypes, le gestionnaire set sera appel et obj sera pass en tant que rcepteur.
La mthode set doit renvoyer une valeur boolenne. Elle renvoie true pour indiquer que l'affectation a russi. Si la mthode set renvoie false et que l'affectation tait excute dans du code en mode strict, une exception TypeError sera leve.
La mthode handler.set est une trappe qui permet d'intercepter les oprations qui sont utilises pour dfinir ou modifier la valeur d'une proprit.
Cette trappe permet d'intercepter les oprations suivantes :
proxy[toto] = truc et proxy.toto = trucObject.create(proxy)[toto] = trucReflect.set()Si les invariants suivants ne sont pas respects, le proxy renverra une exception TypeError :
undefined.set renvoie une valeur fausse (dans un contexte boolen), cela lvera une exception TypeError.Dans l'exemple qui suit, on intercepte la dfinition d'une nouvelle proprit.
var p = new Proxy(
{},
{
set: function (target, prop, value, receiver) {
target[prop] = value;
console.log("property set: " + prop + " = " + value);
return true;
},
},
);
console.log("a" in p); // false
p.a = 10; // "property set: a = 10"
console.log("a" in p); // true
console.log(p.a); // 10
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-proxy-object-internal-methods-and-internal-slots-set-p-v-receiver |
Cette page a t modifie le 22 mai 2026 par les contributeurices du MDN.
ProxyCertaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |