Sobes.tech
Junior

Hoe werkt de apply-methode in JavaScript?

sobes.tech AI

Antwoord van AI

De apply-methode wordt op functies aangeroepen en stelt je in staat om die functie uit te voeren met een gespecificeerde this-waarde en argumenten die worden doorgegeven in de vorm van een array (of een array-achtig object).

Belangrijkste aspecten:

  1. Instellen van this: Het eerste argument van de apply-methode bepaalt de waarde van de this-sleutelwoord binnen de aangeroepen functie. Als je null of undefined doorgeeft, verwijst this in niet-strikte modus naar het globale object (bijvoorbeeld window in de browser of global in Node.js), en in strikte modus blijft het undefined.
  2. Doorgeven van argumenten: Het tweede argument is een array (of een array-achtig object), waarvan de elementen de argumenten worden voor de aangeroepen functie, in de volgorde waarin ze in de array voorkomen.

Syntax:

function.apply(thisArg, argsArray)
  • thisArg: De waarde die wordt gebruikt als this bij het aanroepen van de functie.
  • argsArray: Array of array-achtig object dat de argumenten bevat waarmee de functie wordt aangeroepen.

Verschillen met call:

  • apply accepteert argumenten als een array.
  • call accepteert argumenten als afzonderlijke waarden, opgesomd na thisArg.

Voorbeeld van gebruik:

// Functie om het maximale getal in een array te berekenen
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8

// Aanroepen van een methode van een object met een andere `this`-context
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?

Gebruik:

  • Argumentenarray doorgeven aan een functie die ze als afzonderlijke parameters verwacht.
  • De this-context wijzigen bij het aanroepen van een functie.
  • Gebruik met ingebouwde methoden die meerdere argumenten verwachten (bijvoorbeeld Math.max, Math.min).