Heim >Web-Frontend >js-Tutorial >Der Unterschied zwischen Function.prototype.apply und Function.prototype.call in JavaScript

Der Unterschied zwischen Function.prototype.apply und Function.prototype.call in JavaScript

WBOY
WBOYnach vorne
2023-08-24 13:05:021501Durchsuche

JavaScript 中 Function.prototype.apply 和 Function.prototype.call 的区别

Function.prototype.apply ​​​​und Function.prototype.call sind Methoden, mit denen Sie eine Funktion mit einem bestimmten Wert und Parametern aufrufen können. Der Hauptunterschied zwischen den beiden besteht darin, dass Sie mit „Apply“ ein Array von Parametern übergeben können, während „Call“ erfordert, dass Sie die Parameter einzeln auflisten.

Function.prototype.apply

​​>

Function .prototype.apply ist eine Methode, mit der Sie eine Funktion mit einem bestimmten Wert- und Argumentarray aufrufen können.

Syntax

Die Syntax für die Verwendung von apply lautet -

func.apply(thisArg, argsArray)

Hier ist thisArg der Wert, der als this innerhalb der Funktion verwendet wird. argsArray ist das Array von Argumenten, die an die Funktion übergeben werden.

Beispiel

Hier ist ein Beispiel für den Aufruf einer Funktion mit apply -

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function sayHello(name) {
         return "Hello, " + name + "!";
      }
      document.getElementById("result").innerHTML = sayHello.apply(null, ["John"])
   </script>
</body>
</html>

Output

Der obige Code gibt die folgende Ausgabe aus.

Hello, John!

Wie Sie sehen können, haben wir für thisArg null übergeben, da wir diesen Wert nicht festlegen möchten. Wir haben ein Array für argsArray übergeben, das den Parameter „John“ enthält. Das Ergebnis ist ein Aufruf der Funktion sayHello mit „John“ als Namensparameter.

Function.prototype.call

Function.prototype.call ist eine Funktion, die es Ihnen ermöglicht, eine Methode mit einer bestimmten Werte- und Parameterliste aufzurufen.

Syntax

Die Syntax für die Verwendung von call lautet

func.call(thisArg, arg1, arg2, ...)

wobei thisArg der Wert ist, der als this innerhalb der Funktion verwendet wird. arg1, arg2, ... sind die Argumente, die an die Funktion übergeben werden.

Beispiel

Hier ist ein Beispiel für die Verwendung der Aufruffunktion Aufruffunktion -

<!doctype html>
<html>
<head>
   <title>Examples</title>
</head>
<body>
   <div id="result"></div>
   <script>
      function sayHello(name) {
         return "Hello, " + name + "!";
      }
      document.getElementById("result").innerHTML = sayHello.call(null, ["John"])
   </script>
</body>
</html>

Ausgabe

Der obige Code gibt die folgende Ausgabe aus.

Hello, John!

Wie Sie sehen können, haben wir für thisArg null übergeben, da wir diesen Wert nicht festlegen möchten. Wir nehmen „John“ als einziges Argument. Das Ergebnis ist ein Aufruf der Funktion sayHello mit „John“ als Namensparameter.

Unterschiede zwischen Function.prototype.apply und Function.prototype.call

Die folgende Tabelle zeigt die wichtigsten Unterschiede zwischen Function.prototype.apply und Function.prototype.call -

Vergleichsgrundlagen Function.prototype. apply Function.prototype.call
Definition Diese Methode ermöglicht es uns, eine Funktion mit einem bestimmten diesem-Wert und einem Array von Argumenten aufzurufen.

Diese Methode ermöglicht es uns, eine Funktion mit einer bestimmten diesem-Wert- und Argumentliste aufzurufen.

Parameter Wir übergeben ein Array von Parametern.

Wir übergeben eine Liste von Parametern.

Geschwindigkeit Da keine neue Funktion erstellt wird, ist es schneller als Aufruf. em>

Da jeder Aufruf eine neue Funktion erstellt, ist er langsamer als apply.

Verwendung
  • Anhängen eines Arrays an

  • Schreiben einer integrierten Funktion ohne Schleife

  • Verknüpfen Sie den Konstruktor von Objekt.

  • Anonyme Funktionen aufrufen.

  • Rufen Sie eine Funktion auf und geben Sie den Kontext von „diesem“ an.

  • Rufen Sie eine Funktion auf, ohne das erste Argument anzugeben.

Fazit

In diesem Tutorial haben wir den Unterschied zwischen den Methoden apply ​​und call> besprochen. Der Hauptunterschied zwischen den beiden besteht darin, wie sie Argumente akzeptieren. Diese Methoden haben unterschiedliche Verwendungszwecke. Sie können die Nutzungszeilen in der Tabelle oben einsehen.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Function.prototype.apply und Function.prototype.call in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen