JavaScript | método handler.apply()

El método handler.apply() en JavaScript se usa como una trampa para una llamada de función. El valor devuelto por este método se utiliza como resultado de una llamada de función a través de un proxy.
Sintaxis: 
 

const p = new Proxy(target, {
  apply: function(target, thisArg, argumentsList) {
  }
});

Parámetros: Este método acepta tres parámetros como se mencionó anteriormente y se describe a continuación: 
 

  • target: este parámetro contiene el objeto de destino.
  • thisArg: este parámetro se utiliza para la llamada.
  • argumentsList: este parámetro contiene la lista como argumento y se utiliza para la llamada.

Valor devuelto: este método devuelve cualquier valor.
Los siguientes ejemplos ilustran el método handler.apply() en JavaScript:
Ejemplo 1: 
 

javascript

function sum(a, b) {
  return a + b;
}
 
const handler = {
  apply: function(target, thisArg, argumentsList) {
    console.log(`Calculate sum: ${argumentsList}`);
 
    return target(argumentsList[0], argumentsList[1])*14/3;
  }
};
 
const proxy1 = new Proxy(sum, handler);
 
console.log(sum(23, 4));
console.log(proxy1(23, 4));

Producción: 
 

27
"Calculate sum: 23, 4"
126

Ejemplo 2: 
 

javascript

var str = function(arg1, arg2) { 
  console.log('geeks get (' + arg1 + ', ' + arg2 + ')'); 
}; 
var proxy = new Proxy(str, { 
  apply: function(target, thisArg, parameters) { 
   console.log('Geeksforgeeks'); 
   
    return target.apply(thisArg, parameters); 
  } 
}); 
proxy('Tutorial', 'Jobs'); 
   
proxy.apply(null, ['Knowledge', 'internships']); 
proxy.call(null, 'Stipend', 'skills');

Producción: 
 

"Geeksforgeeks"
"geeks get (Tutorial, Jobs)"
"Geeksforgeeks"
"geeks get (Knowledge, internships)"
"Geeksforgeeks"
"geeks get (Stipend, skills)"

Navegadores compatibles: los navegadores compatibles con el método JavaScript handler.apply() se enumeran a continuación: 
 

  • Google Chrome 49 y superior
  • Borde 12 y superior
  • Firefox 18 y superior
  • Ópera 36 y superior
  • Safari 10 y superior

Publicación traducida automáticamente

Artículo escrito por SHUBHAMSINGH10 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 *