Heim >Web-Frontend >js-Tutorial >Der Unterschied zwischen Function.prototype.apply und Function.prototype.call in JavaScript
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 ist eine Methode, mit der Sie eine Funktion mit einem bestimmten Wert- und Argumentarray aufrufen können.
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.
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>
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 ist eine Funktion, die es Ihnen ermöglicht, eine Methode mit einer bestimmten Werte- und Parameterliste aufzurufen.
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.
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>
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.
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 |
|
|
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!