Sobes.tech
Junior

Cum funcționează metoda apply în JavaScript?

sobes.tech AI

Răspuns de la AI

Metoda apply se apelează pe funcții și permite apelarea acelei funcții cu o valoare this specificată și argumente transmise sub formă de matrice (sau obiect similar cu matricea).

Aspecte principale:

  1. Setarea this: Primul argument al metodei apply determină valoarea cuvântului cheie this în interiorul funcției apelate. Dacă se transmite null sau undefined, în modul non-strict, this va face referire la obiectul global (de exemplu, window în browser sau global în Node.js), iar în modul strict va rămâne undefined.
  2. Transmiterea argumentelor: Al doilea argument este un array (sau un obiect similar cu array-ul), ale cărui elemente vor fi argumentele funcției apelate, în ordinea în care apar în array.

Sintaxă:

function.apply(thisArg, argsArray)
  • thisArg: Valoarea care va fi folosită ca this la apelarea funcției.
  • argsArray: Array sau obiect similar cu array-ul, care conține argumentele cu care va fi apelată funcția.

Diferențe față de call:

  • apply acceptă argumente ca array.
  • call acceptă argumente ca valori separate, enumerate după thisArg.

Exemplu de utilizare:

// Funcție pentru calcularea numărului maxim dintr-un array
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8

// Apelarea metodei unui obiect cu un alt context `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?

Utilizare:

  • Transmiterea unui array de argumente către o funcție care le așteaptă ca parametri separați.
  • Modificarea contextului this la apelarea funcției.
  • Utilizarea cu metode încorporate care așteaptă multiple argumente (de exemplu, Math.max, Math.min).