| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/construct | [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.construct() est une trappe pour l'oprateur new. Afin que l'opration new puisse tre valide sur le proxy correspondant, la cible utilise doit avoir une mthode interne [[Construct]] (autrement dit, l'instruction new cible doit tre valide).
function monster1(disposition) {
this.disposition = disposition;
}
const handler1 = {
construct(target, args) {
console.log(`Creating a ${target.name}`);
// Expected output: "Creating a monster1"
return new target(...args);
},
};
const proxy1 = new Proxy(monster1, handler1);
console.log(new proxy1("fierce").disposition);
// Expected output: "fierce"
var p = new Proxy(cible, {
construct: function (cible, listeArguments, newTarget) {},
});
Les paramtres suivants sont passs la mthode construct. this est ici li au gestionnaire (handler).
cibleL'objet cible.
listeArgumentsLa liste des arguments passs au constructeur.
newTargetLe constructeur originellement appel.
La mthode construct doit renvoyer un objet.
La mthode handler.construct() est une trappe pour l'oprateur new.
Ce trappe intercepte les oprations suivantes :
new proxy(...args)Reflect.construct()Si les invariants suivants ne sont pas respects, le proxy renverra une exception TypeError :
Object.Dans l'exemple qui suit, on pige l'oprateur new.
var p = new Proxy(function () {}, {
construct: function (target, argumentsList) {
console.log("called: " + argumentsList.join(", "));
return { value: argumentsList[0] * 10 };
},
});
console.log(new p(1).value); // "appel sur : 1"
// 10
Dans cette version, on ne respecte pas la contrainte d'invariance :
var p = new Proxy(function () {}, {
construct: function (target, argumentsList) {
return 1;
},
});
new p(); // Une exception TypeError est leve
Dans le code qui suit, le proxy n'est pas correctement initialis. La cible du proxy doit tre un constructeur valide qui puisse tre utilis avec new.
var p = new Proxy(
{},
{
construct: function (target, argumentsList, newTarget) {
return {};
},
},
);
new p(); // TypeError: p is not a constructor
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-proxy-object-internal-methods-and-internal-slots-construct-argumentslist-newtarget |
ProxyhandlernewReflect.construct()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 |