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:
- Nastavenie
this: Prvý argument metódyapplyurčuje hodnotu kľúčového slovathisvo vnútri volanej funkcie. Ak odovzdátenullaleboundefined, v neprísnom režime budethisodkazovať na globálny objekt (napríkladwindowv prehliadači aleboglobalv Node.js), a v prísnom režime zostaneundefined. - 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á akothispri volaní funkcie.argsArray: Pole alebo objekt podobný poľu obsahujúci argumenty, ktorými bude funkcia volaná.
Rozdiely s call:
applyakceptuje argumenty ako pole.callakceptuje argumenty ako samostatné hodnoty, uvedené pothisArg.
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
thispri volaní funkcie. - Použitie s vstavanými metódami, ktoré očakávajú viacero argumentov (napríklad
Math.max,Math.min).