Heim > Web-Frontend > js-Tutorial > „call()' vs. „apply()': Wann sollte welche Funktionsaufrufmethode verwendet werden?

„call()' vs. „apply()': Wann sollte welche Funktionsaufrufmethode verwendet werden?

Mary-Kate Olsen
Freigeben: 2024-12-14 07:16:14
Original
959 Leute haben es durchsucht

`call()` vs. `apply()`: When to Use Which Function Invocation Method?

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:

  • apply(): Akzeptiert Argumente als array.
  • call(): Erfordert die explizite Auflistung der Argumente, getrennt durch Kommas.

Syntax

Method Syntax
apply() function.apply(thisArg, [arg1, arg2, ...])
call() function.call(thisArg, arg1, arg2, ...)

Mnemonik

Um sich daran zu erinnern Unterschied:

  • A für Array: apply() benötigt ein Array von Argumenten.
  • C für Komma: call() erfordert Argumente durch Kommas getrennt.

Verwendung Fälle

  • call(): Nützlich bei der Übergabe einer bestimmten Anzahl von Argumenten.
  • apply(): Ideal für Szenarien, in denen Argumente bereits in einem Array gespeichert sind oder eine dynamische Bindung erfordern.

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}.`);
}
Nach dem Login kopieren

Aufrufen der Funktion mit apply() und call():

greet.apply(undefined, ["John", "engineer"]);
greet.call(undefined, "Mary", "doctor");
Nach dem Login kopieren

Dies wird Ausgabe:

Hello, my name is John and I'm a engineer.
Hello, my name is Mary and I'm a doctor.
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage