A Proxy becsomagol egy objektumot, és lehetővé teszi az alapvető műveletek (get, set, has, delete, stb.) elfogására a handler funkciókon keresztül, amelyeket trapoknak nevezünk. A Reflect az ezeknek a műveleteknek az alapértelmezett verzióit biztosítja függvényekként, így a trapok tisztán továbbíthatják a normál viselkedéshez.
user = { : };
proxied = (user, {
() {
.();
.(target, key);
},
() {
(key === && value < ) ();
.(target, key, value);
},
});
proxied.;
proxied. = -;
