Heim > Web-Frontend > js-Tutorial > Call vs. Apply in JavaScript: Wie unterscheiden sich diese Funktionsaufrufmethoden?

Call vs. Apply in JavaScript: Wie unterscheiden sich diese Funktionsaufrufmethoden?

Mary-Kate Olsen
Freigeben: 2024-12-15 11:05:17
Original
723 Leute haben es durchsucht

Call vs. Apply in JavaScript: How Do These Function Invocation Methods Differ?

Funktionsaufrufmethoden: call vs. apply

In JavaScript ermöglichen Ihnen die Methoden call und apply, Funktionen mit benutzerdefinierten Kontexten und Argumenten aufzurufen . Obwohl beide Methoden denselben Zweck erfüllen, unterscheiden sie sich darin, wie sie mit der Argumentübergabe umgehen.

call vs. apply: Argument Handling

Der Hauptunterschied liegt in der Art und Weise, wie die Argumente verarbeitet werden werden der Funktion übergeben:

  • Aufruf: Jedes Argument wird übergeben einzeln.
  • Anwenden:Argumente werden als Array übergeben.

Um sich an diese Unterscheidung zu erinnern, kann die Mnemonik „A für Array und C für Komma“ lauten nützlich.

Syntax:

  • Aufruf:

    theFunction.call(valueForThis, arg1, arg2, ...)
    Nach dem Login kopieren
  • Anwenden:

    theFunction.apply(valueForThis, arrayOfArgs)
    Nach dem Login kopieren

Beispiel:

function theFunction(name, profession) {
  console.log("My name is " + name + " and I am a " + profession + ".");
}

theFunction("John", "fireman");
theFunction.apply(undefined, ["Susan", "school teacher"]);
theFunction.call(undefined, "Claude", "mathematician");
Nach dem Login kopieren

In In diesem Beispiel wird die Methode call mit durch Kommas getrennten Argumenten verwendet, während die Methode apply ein Array von Argumenten akzeptiert.

Spread-Operator:

In ES6 und höher kann der Spread-Operator verwendet werden, um ein Array als Argumente an zu übergeben Aufruf-Methode:

theFunction.call(undefined, ...["Matthew", "physicist"]);
Nach dem Login kopieren

Leistungs- und Nutzungsempfehlungen:

Es gibt keine signifikanten Leistungsunterschiede zwischen Aufruf und Anwenden. Die Wahl der zu verwendenden Methode hängt von der jeweiligen Situation ab:

  • Wenn sich die Argumente bereits in einem Array befinden, kann die Verwendung von Apply den Code vereinfachen.
  • Wenn Sie einen benutzerdefinierten Wert für den this-Kontext übergeben müssen, können sowohl call als auch apply verwendet werden.
  • Das ist es Es wird allgemein als gute Praxis angesehen, call zu verwenden, wenn mit Funktionen als Objekten gearbeitet wird, und apply zu verwenden, wenn es um Arrays von Argumenten geht.

Das obige ist der detaillierte Inhalt vonCall vs. Apply in JavaScript: Wie unterscheiden sich diese Funktionsaufrufmethoden?. 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