Sobes.tech
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:

  1. this beállítása: Az apply módszer első argumentuma határozza meg a this kulcsszó értékét a hívott függvényen belül. Ha null vagy undefined értéket adunk meg, nem szigorú módban a this a globális objektumra (pl. window a böngészőben vagy global Node.js-ben) fog hivatkozni, szigorú módban pedig undefined marad.
  2. 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, amit this-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 apply argumentumokat tömbként fogadja el.
  • A call argumentumokat külön értékekként, a thisArg utá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 this kontextus 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).