Sobes.tech
Junior

¿Cómo funciona el método apply en JavaScript?

sobes.tech AI

Respuesta de la IA

El método apply se llama en funciones y permite invocar esa función con un valor this establecido y argumentos pasados en forma de matriz (o un objeto similar a un array).

Aspectos principales:

  1. Establecimiento de this: El primer argumento del método apply determina el valor de la palabra clave this dentro de la función llamada. Si se pasa null o undefined, en modo no estricto, this hará referencia al objeto global (por ejemplo, window en el navegador o global en Node.js), y en modo estricto, permanecerá como undefined.
  2. Paso de argumentos: El segundo argumento es una matriz (o un objeto similar a un array), cuyos elementos serán los argumentos de la función llamada, en el orden en que aparecen en la matriz.

Sintaxis:

function.apply(thisArg, argsArray)
  • thisArg: Valor que se usará como this al llamar a la función.
  • argsArray: Matriz o un objeto similar a un array que contiene los argumentos con los que se invocará la función.

Diferencias con call:

  • apply acepta los argumentos como una matriz.
  • call acepta los argumentos como valores separados, listados después de thisArg.

Ejemplo de uso:

// Función para calcular el número máximo en un array
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8

// Llamada a un método de un objeto con otro contexto `this`
const person1 = { name: 'Alice' };
const person2 = { name: 'Bob' };

function greet(greeting, punctuation) {
  console.log(`${greeting}, ${this.name}${punctuation}`);
}

greet.apply(person1, ['Hello', '!']); // Hello, Alice!
 gree.apply(person2, ['Hi', '?']);    // Hi, Bob?

Usos:

  • Pasar argumentos en forma de matriz a funciones que esperan argumentos separados.
  • Cambiar el contexto this al llamar a una función.
  • Usar con métodos integrados que esperan múltiples argumentos (por ejemplo, Math.max, Math.min).