Sobes.tech
Junior

Wie funktioniert die Methode apply in JavaScript?

sobes.tech KI

Antwort von AI

Die Methode apply wird auf Funktionen aufgerufen und ermöglicht es, diese Funktion mit einem festgelegten this-Wert und Argumenten, die in Form eines Arrays (oder eines arrayähnlichen Objekts) übergeben werden, aufzurufen.

Hauptaspekte:

  1. Festlegung von this: Das erste Argument der Methode apply bestimmt den Wert von this innerhalb der aufgerufenen Funktion. Wenn null oder undefined übergeben wird, verweist this im nicht-strengen Modus auf das globale Objekt (z.B. window im Browser oder global in Node.js), im strengen Modus bleibt es undefined.
  2. Argumentübergabe: Das zweite Argument ist ein Array (oder ein arrayähnliches Objekt), dessen Elemente die Argumente der aufgerufenen Funktion sind, in der Reihenfolge, in der sie im Array erscheinen.

Syntax:

function.apply(thisArg, argsArray)
  • thisArg: Der Wert, der als this beim Aufruf der Funktion verwendet wird.
  • argsArray: Ein Array oder ein arrayähnliches Objekt, das die Argumente enthält, mit denen die Funktion aufgerufen wird.

Unterschiede zu call:

  • apply akzeptiert Argumente als Array.
  • call akzeptiert Argumente als einzelne Werte, die nach thisArg aufgelistet sind.

Beispiel:

// Funktion zur Berechnung der maximalen Zahl in einem Array
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8

// Aufruf einer Methode eines Objekts mit anderem Kontext `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?

Verwendungen:

  • Übergabe eines Arrays von Argumenten an eine Funktion, die diese Argumente einzeln erwartet.
  • Ändern des this-Kontexts beim Aufruf einer Funktion.
  • Verwendung mit eingebauten Methoden, die mehrere Argumente erwarten (z.B. Math.max, Math.min).