Compartir tecnología

Proxy en es6 implementa el modo observador

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Introducción al proxy

Proxy en ES6 es un objeto especial que se utiliza para crear objetos proxy. Nos permite definir comportamientos personalizados, como interceptar y modificar las acciones predeterminadas de un objeto. El proxy se puede utilizar para interceptar diversas operaciones sobre objetos, incluido el acceso a propiedades, asignaciones, llamadas a funciones, etc.

La función de Proxy es configurar una capa de interceptación antes del objeto objetivo, que puede interceptar y personalizar varias operaciones en el objeto objetivo. Al utilizar Proxy, podemos implementar funciones como control de acceso, verificación de datos y secuestro de atributos de los objetos de destino.

Proxy envuelve el objeto de destino con un objeto proxy y proporciona un conjunto de funciones de enlace (también llamadas "trampas") que pueden operar en el objeto proxy. Cuando operamos en el objeto proxy, en realidad llamamos a estas funciones de enlace y las procesamos en consecuencia según sea necesario.

Introducción a las operaciones de atributos de proxy

  • get (objetivo, propKey, receptor): intercepta la lectura de las propiedades del objeto
  • set(destino, propKey, valor, receptor): intercepta la configuración de las propiedades del objeto y devuelve un valor booleano.
  • has(target, propKey): intercepta la operación de propKey en el proxy y devuelve un valor booleano.
  • eliminarProperty(target, propKey): intercepta la operación de eliminación de proxy[propKey] y devuelve un valor booleano.
  • ownKeys(destino): Interceptar Object.getOwnPropertyNames(proxy), Object.getOwnPropertySymbols(proxy), Object.keys(proxy), for...in bucle y devolver una matriz. Este método devuelve los nombres de propiedad de todas las propiedades propias del objeto de destino, mientras que el resultado devuelto de Object.keys() solo incluye las propiedades transitables del propio objeto de destino.
  • getOwnPropertyDescriptor(target, propKey): intercepta Object.getOwnPropertyDescriptor(proxy, propKey) y devuelve el objeto de descripción de la propiedad.
  • defineProperty(target, propKey, propDesc): intercepta Object.defineProperty(proxy, propKey, propDesc), Object.defineProperties(proxy, propDescs) y devuelve un valor booleano.
  • preventExtensions(target): Intercepta Object.preventExtensions(proxy) y devuelve un valor booleano.
  • getPrototypeOf(target): intercepta Object.getPrototypeOf(proxy) y devuelve un objeto.
  • isExtensible(destino): intercepta Object.isExtensible(proxy) y devuelve un valor booleano.
  • setPrototypeOf(target, proto): intercepta Object.setPrototypeOf(proxy, proto) y devuelve un valor booleano. Si el objeto de destino es una función, hay dos operaciones adicionales que pueden interceptarse.
  • apply(target, object, args): intercepta la operación de la instancia de Proxy como una llamada de función, como proxy(...args), proxy.call(object,...args), proxy.apply(...).
  • construct(target, args): intercepta la operación de la instancia de Proxy como una llamada al constructor, como new proxy(...args).

usarProxyImplementar el patrón de observador.