Junior
Jak funguje metoda apply v JavaScriptu?
sobes.tech AI
Odpověď od AI
Metoda apply se volá na funkce a umožňuje zavolat tuto funkci s danou hodnotou this a argumenty předanými ve formě pole (nebo objektu podobného poli).
Hlavní aspekty:
- Nastavení
this: První argument metodyapplyurčuje hodnotu klíčového slovathisuvnitř volané funkce. Pokud předátenullneboundefined, v non-striktním režimu budethisodkazovat na globální objekt (napříkladwindowv prohlížeči neboglobalv Node.js), a v striktním režimu zůstaneundefined. - Předání argumentů: Druhý argument je pole (nebo objekt podobný poli), jehož prvky se stanou argumenty volané funkce, v pořadí, v jakém jsou v poli.
Syntaxe:
function.apply(thisArg, argsArray)
thisArg: Hodnota, která bude použita jakothispři volání funkce.argsArray: Pole nebo objekt podobný poli obsahující argumenty, kterými bude funkce volána.
Rozdíly od call:
applypřijímá argumenty jako pole.callpřijímá argumenty jako samostatné hodnoty, uvedené zathisArg.
Příklad použití:
// Funkce pro výpočet maximálního čísla v poli
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8
// Volání metody objektu s jiným kontextem `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žití:
- Předání pole argumentů funkci, která je očekává jako samostatné parametry.
- Změna kontextu
thispři volání funkce. - Použití s vestavěnými metodami, které očekávají více argumentů (například
Math.max,Math.min).