Sobes.tech
Junior

Ako funguje metóda apply v JavaScript?

sobes.tech AI

Odpoveď od AI

Metóda apply sa volá na funkcie a umožňuje zavolať túto funkciu s určenou hodnotou this a argumentmi odovzdanými vo forme poľa (alebo objektu podobného poľu).

Hlavné aspekty:

  1. Nastavenie this: Prvý argument metódy apply určuje hodnotu kľúčového slova this vo vnútri volanej funkcie. Ak odovzdáte null alebo undefined, v neprísnom režime bude this odkazovať na globálny objekt (napríklad window v prehliadači alebo global v Node.js), a v prísnom režime zostane undefined.
  2. Prenos argumentov: Druhý argument je pole (alebo objekt podobný poľu), ktorého prvky sa stanú argumentmi volanej funkcie, v poradí, v akom sa objavujú v poli.

Syntax:

function.apply(thisArg, argsArray)
  • thisArg: Hodnota, ktorá bude použitá ako this pri volaní funkcie.
  • argsArray: Pole alebo objekt podobný poľu obsahujúci argumenty, ktorými bude funkcia volaná.

Rozdiely s call:

  • apply akceptuje argumenty ako pole.
  • call akceptuje argumenty ako samostatné hodnoty, uvedené po thisArg.

Príklad použitia:

// Funkcia na výpočet maximálneho čísla v poli
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8

// Volanie metódy objektu s iným kontextom `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?

Použitie:

  • Prenos poľa argumentov do funkcie, ktorá ich očakáva ako samostatné parametre.
  • Zmena kontextu this pri volaní funkcie.
  • Použitie s vstavanými metódami, ktoré očakávajú viacero argumentov (napríklad Math.max, Math.min).