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:
- Setarea
this: Primul argument al metodeiapplydetermină valoarea cuvântului cheiethisîn interiorul funcției apelate. Dacă se transmitenullsauundefined, în modul non-strict,thisva face referire la obiectul global (de exemplu,windowîn browser sauglobalîn Node.js), iar în modul strict va rămâneundefined. - 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ă cathisla 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:
applyacceptă argumente ca array.callacceptă 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
thisla apelarea funcției. - Utilizarea cu metode încorporate care așteaptă multiple argumente (de exemplu,
Math.max,Math.min).