JavaScript | Objeto Proxy()

El objeto proxy en JavaScript se utiliza para definir el comportamiento personalizado de las operaciones fundamentales (por ejemplo, búsqueda de propiedades, asignación, enumeración, invocación de funciones, etc.).

Sintaxis:

var p = new Proxy(target, handler);

Parámetro: el objeto proxy acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:

  • destino: un objeto de destino (puede ser cualquier tipo de objeto, incluida una función, una clase o incluso otro proxy) para envolver con Proxy.
  • controlador: un objeto cuyas propiedades son funciones que definen el comportamiento del proxy cuando se realiza una operación en él.

Ejemplo:

                        <script>
const Person = {
    Name: 'John Nash',
    Age: 25
};
  
const handler = {
    // target represents the Person while prop represents
        // proxy property.
    get: function(target, prop) {
        if (prop === 'FirstName') {
            return target.Name.split(' ')[0];
        }
        if (prop === 'LastName') {
            return target.Name.split(' ').pop();
        }
        else {
            return Reflect.get(target,prop);
        }
    }
};
  
const proxy1 = new Proxy(Person, handler);
  
document.write(proxy1 + "<br>");
  
// Though there is no Property as FirstName and LastName, 
// still we get them as if they were property not function.
document.write(proxy1.FirstName + "<br>");
document.write(proxy1.LastName  + "<br>");     
</script>                    

Producción:

[object Object]
John
Nash

Nota: El código anterior se puede ejecutar directamente en la terminal siempre que NodeJs esté instalado; de lo contrario, ejecútelo en un archivo HTML pegando la etiqueta de script anterior y verifique el resultado en la consola de cualquier navegador web.

Publicación traducida automáticamente

Artículo escrito por imdhruvgupta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *