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:
- Festlegung von
this: Das erste Argument der Methodeapplybestimmt den Wert vonthisinnerhalb der aufgerufenen Funktion. Wennnulloderundefinedübergeben wird, verweistthisim nicht-strengen Modus auf das globale Objekt (z.B.windowim Browser oderglobalin Node.js), im strengen Modus bleibt esundefined. - 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 alsthisbeim 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:
applyakzeptiert Argumente als Array.callakzeptiert Argumente als einzelne Werte, die nachthisArgaufgelistet 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).