Inhaltsverzeichnis
Was ist der Unterschied zwischen call und apply in Javascript?
Heim Web-Frontend Front-End-Fragen und Antworten Was ist der Unterschied zwischen „call' und „apply' in Javascript?

Was ist der Unterschied zwischen „call' und „apply' in Javascript?

Jan 28, 2022 pm 03:24 PM
html javascript 前端

In JavaScript haben die Methode call() und die Methode apply() die gleiche Funktion. Der Unterschied liegt in der Art und Weise, wie Parameter empfangen werden. Bei Verwendung der Methode call() müssen die an die Funktion übergebenen Parameter einzeln aufgelistet werden 1. Bei Verwendung von apply() wird der Funktion das Parameterarray übergeben.

Was ist der Unterschied zwischen „call' und „apply' in Javascript?

Die Betriebsumgebung dieses Tutorials: Windows 10-System, JavaScript-Version 1.8.5, Dell G3-Computer.

Was ist der Unterschied zwischen call und apply in Javascript?

Die call()-Methode ruft eine Funktion mit einem angegebenen Wert und separat bereitgestellten Parametern (Liste der Parameter) auf.

Hinweis: Die Funktion dieser Methode ähnelt der apply()-Methode. Der einzige Unterschied besteht darin, dass die call()-Methode eine Liste mit mehreren Parametern akzeptiert, während die apply()-Methode ein Array mit mehreren Parametern akzeptiert.

 Syntax

fun.call(thisObj[, arg1[, arg2[, ...]]])
Nach dem Login kopieren

  Definition: Rufen Sie eine Methode eines Objekts auf, um das aktuelle Objekt durch ein anderes Objekt zu ersetzen.

  Beschreibung:

   Mit der Aufrufmethode kann eine Methode anstelle eines anderen Objekts aufgerufen werden. Die Aufrufmethode ändert den Objektkontext einer Funktion vom Anfangskontext in das durch thisObj angegebene neue Objekt.

   Wenn der Parameter thisObj nicht angegeben wird, wird das globale Objekt als thisObj verwendet.

 Parameter

  thisObj

  Dieser Wert wird angegeben, wenn die Fun-Funktion ausgeführt wird. Es ist zu beachten, dass der angegebene this-Wert nicht unbedingt der tatsächliche this-Wert ist, wenn die Funktion ausgeführt wird. Wenn sich die Funktion im nicht-strikten Modus befindet, zeigt der als null und undefiniert angegebene this-Wert automatisch auf das globale Objekt (Browser). das Fensterobjekt), und dieses, dessen Wert ein Grundwert (Zahl, Zeichenfolge, boolescher Wert) ist, zeigt auf das automatische Umbruchobjekt des Grundwerts.

  arg1, arg2, ...

  Angegebene Parameterliste.

Rückgabewert

Das Rückgabeergebnis enthält den angegebenen Wert und die angegebenen Parameter.

apply() Die Methode

apply() ruft eine Funktion mit einem angegebenen Wert und Argumenten auf, die als Array (oder arrayähnliches Objekt) bereitgestellt werden.

Syntax

fun.apply(thisObj, [argsArray])
Nach dem Login kopieren

 Definition: Wenden Sie eine Methode eines Objekts an, um das aktuelle Objekt durch ein anderes Objekt zu ersetzen.

 Hinweis:

  Wenn argsArray kein gültiges Array oder kein Argumentobjekt ist, wird ein TypeError verursacht.

   Wenn weder argArray noch thisObj bereitgestellt werden, wird das Global-Objekt als thisObj verwendet und es können keine Parameter übergeben werden.

Parameter

 thisObj

  Dieser Wert wird angegeben, wenn die Fun-Funktion ausgeführt wird. Es ist zu beachten, dass der angegebene Wert nicht unbedingt der tatsächliche Wert ist, wenn die Funktion ausgeführt wird. Wenn sich die Funktion im nicht-strikten Modus befindet, zeigt sie automatisch auf das globale Objekt, wenn der angegebene Wert null oder undefiniert ist (im Browser ist es ein Fensterobjekt), und dieses, dessen Wert ein Grundwert (Zahl, Zeichenfolge, boolescher Wert) ist, zeigt auf das automatische Umbruchobjekt des Grundwerts.

  argsArray

   Ein Array oder arrayähnliches Objekt, dessen Array-Elemente als separate Parameter an die Fun-Funktion übergeben werden. Wenn der Wert dieses Parameters null oder undefiniert ist, bedeutet dies, dass keine Parameter übergeben werden müssen. Ab ECMAScript 5

   ist es möglich, Array-ähnliche Objekte zu verwenden.

Zusammenfassung

Beide haben die gleiche Funktion, sie binden beide obj (d. h. this) an thisObj. Zu diesem Zeitpunkt hat thisObj die Eigenschaften und Methoden von obj. Mit anderen Worten: thisObj „erbt“ die Eigenschaften und Methoden von obj. Der einzige Unterschied besteht darin, dass apply Array-Parameter akzeptiert, während call kontinuierliche Parameter akzeptiert.

Die call()-Methode und die apply()-Methode haben die gleiche Funktion. Der Unterschied zwischen ihnen liegt in der Art und Weise, wie sie Parameter empfangen. Bei call() ist der erste Parameter der Wert von this, der sich nicht ändert. Die übrigen Parameter werden direkt an die Funktion übergeben. (Bei Verwendung der call()-Methode müssen die an die Funktion übergebenen Parameter einzeln aufgelistet werden. Bei Verwendung von apply() wird das Parameterarray an die Funktion übergeben.) Der folgende Code erklärt:

function add(c, d){
    return this.a + this.b + c + d;
}
var o = {a:1, b:3};
add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16
add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34 
Nach dem Login kopieren

Sowohl call als auch apply sind Wird verwendet, um etwas zu ändern. Der Kontext, wenn eine Funktion ausgeführt wird, ist der Kontext. Mit anderen Worten, es dient dazu, den Zeiger davon innerhalb des Funktionskörpers zu ändern. Denn JavaScript-Funktionen haben die Konzepte „Definitionskontext“, „Laufzeitkontext“ und „Kontext kann geändert werden“.

Die beiden Funktionen sind genau gleich, aber die Art der Parameterübernahme ist unterschiedlich. Beispielsweise gibt es eine Funktion fun, die wie folgt definiert ist:

var fun = function(arg1, arg2) {};
Nach dem Login kopieren

kann über fun.call(this, arg1, arg2); oder fun.apply(this, [arg1, arg2]); aufgerufen werden. Darunter ist dies der Kontext, den Sie angeben möchten, der ein beliebiges JavaScript-Objekt sein kann (alles in JavaScript ist ein Objektaufruf, der die Parameter der Reihe nach übergeben muss, während „Apply“ die Parameter in ein Array einfügt).

In JavaScript ist die Anzahl der Parameter einer Funktion nicht festgelegt. Wenn Ihre Parameter die Anzahl eindeutig kennen, verwenden Sie im Hinblick auf die geltenden Bedingungen den Aufruf. Wenn Sie sich nicht sicher sind, verwenden Sie die Funktion „Anwenden“ und übertragen Sie die Parameter dann in die Funktion array Übergeben Sie es. Wenn die Anzahl der Parameter unsicher ist, können alle Parameter innerhalb der Funktion über das Argumentarray durchlaufen werden.

Verwandte Empfehlungen: Javascript-Lern-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „call' und „apply' in Javascript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Tabellenrahmen in HTML Tabellenrahmen in HTML Sep 04, 2024 pm 04:49 PM

Anleitung zum Tabellenrahmen in HTML. Hier besprechen wir verschiedene Möglichkeiten zum Definieren von Tabellenrändern anhand von Beispielen für den Tabellenrand in HTML.

HTML-Rand links HTML-Rand links Sep 04, 2024 pm 04:48 PM

Anleitung zum HTML-Rand links. Hier besprechen wir einen kurzen Überblick über HTML margin-left und seine Beispiele sowie seine Code-Implementierung.

Verschachtelte Tabelle in HTML Verschachtelte Tabelle in HTML Sep 04, 2024 pm 04:49 PM

Dies ist eine Anleitung für verschachtelte Tabellen in HTML. Hier diskutieren wir anhand der entsprechenden Beispiele, wie man eine Tabelle innerhalb der Tabelle erstellt.

HTML-Tabellenlayout HTML-Tabellenlayout Sep 04, 2024 pm 04:54 PM

Leitfaden zum HTML-Tabellenlayout. Hier besprechen wir die Werte des HTML-Tabellenlayouts zusammen mit den Beispielen und Ausgaben im Detail.

HTML-Eingabeplatzhalter HTML-Eingabeplatzhalter Sep 04, 2024 pm 04:54 PM

Leitfaden für HTML-Eingabeplatzhalter. Hier besprechen wir die Beispiele für HTML-Eingabeplatzhalter zusammen mit den Codes und Ausgaben.

HTML-geordnete Liste HTML-geordnete Liste Sep 04, 2024 pm 04:43 PM

Leitfaden zur HTML-geordneten Liste. Hier besprechen wir auch die Einführung von HTML-geordneten Listen und Typen sowie deren Beispiele

Text in HTML verschieben Text in HTML verschieben Sep 04, 2024 pm 04:45 PM

Anleitung zum Verschieben von Text in HTML. Hier besprechen wir eine Einführung, wie Marquee-Tags funktionieren, mit Syntax und Beispielen für die Implementierung.

HTML-Onclick-Button HTML-Onclick-Button Sep 04, 2024 pm 04:49 PM

Anleitung zum HTML-OnClick-Button. Hier diskutieren wir deren Einführung, Funktionsweise, Beispiele und Onclick-Events in verschiedenen Veranstaltungen.

See all articles