Herramientas de usuario

Herramientas del sitio


informatica:programacion:cursos:programacion_avanzada_javascript:proxies

¡Esta es una revisión vieja del documento!


Proxies

Módulo perteneciente al curso Programación avanzada con JavaScript y ECMAScript.

Introducción

Una de las características nuevas más desconocidas para muchos desarrolladores que incorpora ECMAScript 2015 son los proxies.

Un proxy es un objeto que permite interceptar las operaciones (tales como llamar a un método o consultar una propiedad) que se realizan sobre un objeto y realizar determinadas acciones.

Los proxies permiten escenarios avanzados, imposibles en ES5, ya que pueden interceptar llamadas a métodos o propiedades realizados contra otros objetos, de forma totalmente transparente para quien realiza esas operaciones.

Las principales aplicaciones de los proxies son todas avanzadas y no se usarán a menudo, pero son una herramienta muy útil para conseguir, entre otras cuestiones avanzadas:

  • La intercepción de llamadas a propiedades y métodos de objetos para modificar su comportamiento.
  • El control y autorización de llamadas para seguridad y gestión del uso de objetos y funciones.
  • Traza y log para seguimiento de llamadas de código.
  • Creación de contratos para uso de código.
  • La virtualización de objetos de modo que podamos crear objetos virtuales que utilicen a otros objetos por debajo pero modificando su comportamiento o actuando sobre varios objetos o propiedades al mismo tiempo.

En este módulo vamos cómo podemos crear los proxies y qué escenarios nos permiten solucionar.

Los proxies requieren soporte del motor de JavaScript por lo que no se pueden transpilar ni usar ningún polyfill para simularlos.

Creación de proxies

Intercepciones básicas

DEMO: Interceptando un getter a propiedad

Ejercicio propuesto

Proxies a objetos de tipo función

DEMO: Creando un "congelador" de objetos - Parte 1

DEMO: Creando un "congelador" de objetos - Parte 2

DEMO: Creando un "congelador" de objetos - Parte 3

informatica/programacion/cursos/programacion_avanzada_javascript/proxies.1730113265.txt.gz · Última modificación: por tempwin