JavaScript-Funktionsaufrufe spielen in js eine wichtige Rolle. Dieser Artikel bietet ein detailliertes Verständnis davon.
Es gibt 4 Möglichkeiten, JavaScript-Funktionen aufzurufen.
Der Unterschied zwischen den einzelnen Methoden liegt in der Initialisierung dieser.
dieses Schlüsselwort
Im Allgemeinen zeigt dies in Javascript auf das aktuelle Objekt, wenn die Funktion ausgeführt wird.
Beachten Sie, dass es sich um ein reserviertes Schlüsselwort handelt. Sie können den Wert dieses Schlüsselworts nicht ändern.
JavaScript-Funktionen aufrufen
In den vorherigen Kapiteln haben wir gelernt, wie man Funktionen erstellt.
Der Code in der Funktion wird ausgeführt, nachdem die Funktion aufgerufen wurde.
Als Funktionsaufruf
Instanz
function myFunction(a, b) { return a * b;}myFunction(10, 2); // myFunction(10, 2) 返回 20
Die obige Funktion gehört zu keinem Objekt. In JavaScript ist es jedoch immer das standardmäßige globale Objekt.
Das standardmäßige globale Objekt in HTML ist die HTML-Seite selbst, daher gehört die Funktion zur HTML-Seite.
Das Seitenobjekt im Browser ist das Browserfenster (Fensterobjekt). Die oben genannten Funktionen werden automatisch zu Funktionen des Fensterobjekts.
myFunction() ist dasselbe wie window.myFunction():
Instance
function myFunction(a, b) { return a * b;}window.myFunction(10, 2); // window.myFunction(10, 2) 返回 20
Dies ist ein Aufruf an eine JavaScript-Funktion Häufig verwendete Methoden, aber keine guten Programmiergewohnheiten
Globale Variablen, Methoden oder Funktionen können leicht Namenskonfliktfehler verursachen.
Globales Objekt
Wenn die Funktion nicht von ihrem eigenen Objekt aufgerufen wird, wird der Wert dieses Objekts zum globalen Objekt.
In einem Webbrowser ist das globale Objekt das Browserfenster (Fensterobjekt).
Der von dieser Instanz zurückgegebene Wert ist das Fensterobjekt:
Instanz
function myFunction() { return this;}myFunction(); // 返回 window 对象
Die Funktion wird aufgerufen als ein globales Objekt, das dazu führt, dass der Wert davon zum globalen Objekt wird.
Die Verwendung des Fensterobjekts als Variable kann leicht zum Absturz des Programms führen.
Funktion als Methodenaufruf
In JavaScript können Sie Funktionen als Methoden von Objekten definieren.
Das folgende Beispiel erstellt ein Objekt (myObject), das zwei Eigenschaften (firstName und lastName) und eine Methode (fullName) hat:
Instance
var myObject = { firstName:"John", lastName: "Doe", fullName: function () { return this.firstName + " " + this.lastName; }}myObject.fullName(); // 返回 "John Doe"
fullName method is eine Funktion. Funktionen gehören zu Objekten. myObject ist der Eigentümer der Funktion.
Dieses Objekt enthält JavaScript-Code. Der Wert davon in der Instanz ist das myObject-Objekt.
Testen Sie unten! Ändern Sie die fullName-Methode und geben Sie diesen Wert zurück:
Instance
var myObject = { firstName:"John", lastName: "Doe", fullName: function () { return this; }}myObject.fullName(); // 返回 [object Object] (所有者对象)
Die Funktion wird als Objektmethode aufgerufen, die den Wert von erstellt Dies wird zum Objekt selbst.
Verwenden Sie den Konstruktor, um die Funktion aufzurufen
Wenn das neue Schlüsselwort vor dem Funktionsaufruf verwendet wird, wird der Konstruktor aufgerufen.
Das sieht so aus, als würde eine neue Funktion erstellt, aber in Wirklichkeit sind JavaScript-Funktionen neu erstellte Objekte:
Instanz
// 构造函数:function myFunction(arg1, arg2) { this.firstName = arg1; this.lastName = arg2;} // This creates a new objectvar x = new myFunction("John","Doe");x.firstName; // 返回 "John"
Der Aufruf des Konstruktors erstellt ein neues Objekt. Das neue Objekt erbt die Eigenschaften und Methoden des Konstruktors.
Das Schlüsselwort this im Konstruktor hat keinen Wert.
Der Wert hierfür wird erstellt, wenn die Funktion aufgerufen wird, um das Objekt (neues Objekt) zu instanziieren.
Eine Funktion als Funktionsmethode aufrufen
In JavaScript sind Funktionen Objekte. Eine JavaScript-Funktion hat ihre Eigenschaften und Methoden.
call() und apply() sind vordefinierte Funktionsmethoden. Zum Aufrufen von Funktionen können zwei Methoden verwendet werden, und der erste Parameter beider Methoden muss das Objekt selbst sein.
Instance
function myFunction(a, b) { return a * b;}myObject = myFunction.call(myObject, 10, 2); // 返回 20
Instance
function myFunction(a, b) { return a * b;}myArray = [10, 2];myObject = myFunction.apply(myObject, myArray); // 返回 20
Beide Methoden verwenden das Objekt selbst als ersten Parameter. Der Unterschied zwischen den beiden liegt im zweiten Parameter: apply übergibt ein Parameter-Array, d. h. mehrere Parameter werden zu einem Array zusammengefasst und übergeben, während call als Parameter von call übergeben wird (beginnend mit dem zweiten Parameter).
Im strengen JavaScript-Modus (strenger Modus) wird der erste Parameter beim Aufrufen der Funktion zum Wert davon, auch wenn der Parameter kein Objekt ist.
Wenn im nicht-strikten JavaScript-Modus der Wert des ersten Parameters null oder undefiniert ist, wird stattdessen das globale Objekt verwendet.
Dieser Artikel enthält eine detaillierte Erläuterung der JavaScript-Funktionsaufrufe. Weitere Lernmaterialien finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
JavaScript-Timing-Ereignisse verstehen und verwenden
JavaScript-Abschlüsse verstehen und verwenden
JavaScript-Datum (Datum) bezogene Kenntnisse und Verwendung
Das obige ist der detaillierte Inhalt vonKenntnisse und Anwendung von JavaScript-Funktionsaufrufen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!