Junior
Hogyan működik az apply metódus a JavaScriptben?
sobes.tech MI
Válasz az MI-től
Az apply módszer egy függvényen hívható meg, és lehetővé teszi, hogy ezt a függvényt egy meghatározott this értékkel és argumentumokkal hívjuk meg, amelyeket tömbként (vagy tömbhasonló objektumként) adunk át.
Főbb szempontok:
thisbeállítása: Azapplymódszer első argumentuma határozza meg athiskulcsszó értékét a hívott függvényen belül. Hanullvagyundefinedértéket adunk meg, nem szigorú módban athisa globális objektumra (pl.windowa böngészőben vagyglobalNode.js-ben) fog hivatkozni, szigorú módban pedigundefinedmarad.- Argumentumok átadása: A második argumentum egy tömb (vagy tömbhasonló objektum), amelynek elemei a hívott függvény argumentumai lesznek, a tömbben lévő sorrendben.
Szintaxis:
function.apply(thisArg, argsArray)
thisArg: Az érték, amitthis-ként fog használni a függvényhívás során.argsArray: Tömb vagy tömbhasonló objektum, amely tartalmazza az argumentumokat, amikkel a függvény meghívásra kerül.
Különbségek a call-tól:
- Az
applyargumentumokat tömbként fogadja el. - A
callargumentumokat külön értékekként, athisArgután felsorolva.
Használati példa:
// Függvény a maximális szám kiszámítására egy tömbben
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8
// Egy objektum metódusának hívása más kontextussal `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?
Alkalmazások:
- Argumentumok tömbjének átadása olyan függvénynek, amely ezeket külön paraméterként várja.
- A
thiskontextus módosítása a függvény hívásakor. - Beépített metódusokkal való használat, amelyek több argumentumot várnak (pl.
Math.max,Math.min).