Baseline Widely available
El constructor Proxy()
crea objetos Proxy
.
new Proxy(target, handler)
Nota: Proxy()
solo se puede construir con new
. Intentar llamarlo sin new
arroja un TypeError
.
target
Un objeto de destino para envolver con Proxy
. Puede ser cualquier tipo de objeto, incluida una matriz nativa, una función o incluso otro proxy.
handler
Un objeto cuyas propiedades son funciones que definen el comportamiento del proxy cuando se realiza una operación en él.
Utilice el constructor Proxy()
para crear un nuevo objeto Proxy
. Este constructor toma dos argumentos obligatorios:
target
es el objeto para el que desea crear el proxyhandler
es el objeto que define el comportamiento personalizado del proxy.Un manejador vacÃo creará un proxy que se comporta, en casi todos los aspectos, exactamente como el objetivo. Al definir cualquiera de un conjunto de funciones en el objeto handler
, puede personalizar aspectos especÃficos del comportamiento del proxy. Por ejemplo, al definir get()
puede proporcionar una versión personalizada del acceso a la propiedad del objetivo.
Esta sección enumera todas las funciones de manejador que puede definir. Las funciones de manejador a veces se denominan trampas, porque atrapan las llamadas al objeto de destino subyacente.
handler.apply()
Una trampa para una llamada de función.
handler.construct()
Una trampa para el operador new
.
handler.defineProperty()
Una trampa para Object.defineProperty
.
handler.deleteProperty()
Una trampa para el operador delete
.
handler.get()
Una trampa para obtener valores de propiedad.
handler.getOwnPropertyDescriptor()
Una trampa para Object.getOwnPropertyDescriptor
.
handler.getPrototypeOf()
Una trampa para Object.getPrototypeOf
.
handler.has()
Una trampa para el operador in
.
handler.isExtensible()
Una trampa para Object.isExtensible
.
handler.ownKeys()
Una trampa para Object.getOwnPropertyNames
y Object.getOwnPropertySymbols
.
handler.preventExtensions()
Una trampa para Object.preventExtensions
.
handler.set()
Una trampa para establecer valores de propiedad.
handler.setPrototypeOf()
Una trampa para Object.setPrototypeOf
.
En este ejemplo, el objetivo tiene dos propiedades, notProxied
y proxied
. Definimos un controlador que devuelve un valor diferente para proxied
y permite cualquier otro acceso al objetivo.
const target = {
notProxied: "Valor original",
proxied: "Valor original",
};
const handler = {
get(target, prop, receiver) {
if (prop === "proxied") {
return "Valor reemplazado";
}
return Reflect.get(...arguments);
},
};
const proxy = new Proxy(target, handler);
console.log(proxy.notProxied); // "Valor original"
console.log(proxy.proxied); // "Valor reemplazado"
Especificaciones Compatibilidad con navegadores Véase también
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4