Heim >Web-Frontend >js-Tutorial >„call()' vs. „apply()': Wann sollte welche Funktionsaufrufmethode verwendet werden?
Funktionsaufruf mit Call und Apply
Beim Aufrufen von Funktionen stoßen Programmierer häufig auf die Optionen der Verwendung von Function.prototype.apply() oder Function .prototype.call(). In diesem Artikel werden die Unterschiede und Anwendungsfälle beider Methoden untersucht.
apply() vs. call()
Der grundlegende Unterschied liegt in der Art und Weise, wie sie mit Funktionsargumenten umgehen:
Syntax
Method | Syntax |
---|---|
apply() | function.apply(thisArg, [arg1, arg2, ...]) |
call() | function.call(thisArg, arg1, arg2, ...) |
Mnemonik
Um sich daran zu erinnern Unterschied:
Verwendung Fälle
Leistung Überlegungen
Beide Methoden haben ähnliche Leistungsmerkmale. In ES6 und höher kann der Spread-Operator (...) mit call() verwendet werden und bietet eine prägnantere Alternative zu apply().
Beispiel
Betrachten Sie die folgende Funktion:
function greet(name, occupation) { console.log(`Hello, my name is ${name} and I'm a ${occupation}.`); }
Aufrufen der Funktion mit apply() und call():
greet.apply(undefined, ["John", "engineer"]); greet.call(undefined, "Mary", "doctor");
Dies wird Ausgabe:
Hello, my name is John and I'm a engineer. Hello, my name is Mary and I'm a doctor.
Das obige ist der detaillierte Inhalt von„call()' vs. „apply()': Wann sollte welche Funktionsaufrufmethode verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!