Heim >Web-Frontend >js-Tutorial >Detaillierte Erläuterung der 4 Aufrufmethoden von JavaScript-Funktionen_Javascript-Fähigkeiten
In JavaScript sind Funktionen erstklassige Bürger. Funktionen sind ein Datentyp in JavaScript und werden nicht nur als Modul wie C# oder andere beschreibende Sprachen verwendet. Es gibt vier Aufrufmodi für Funktionen: Funktionsaufrufform, Methodenaufrufform, Konstruktorform und Anwendungsform. Der Hauptunterschied zwischen allen Aufrufmodi liegt in der Bedeutung des Schlüsselworts this. Diese Aufrufformen werden im Folgenden vorgestellt.
Hauptinhalt dieses Artikels:
1. Analysieren Sie die vier Aufrufformen von Funktionen
Klären Sie die Bedeutung davon in der Funktion
Lernen Sie, den Kontext zum Aufrufen von Funktionen zu verwenden
1. Funktionsaufrufformular
Die Funktionsaufrufform ist die gebräuchlichste und am besten verstandene Form. Die sogenannte Funktionsform besteht darin, eine Funktion zu deklarieren und direkt aufzurufen. Zum Beispiel:2. Methodenaufrufmodus
Der Funktionsaufrufmodus ist sehr einfach und die grundlegendste Aufrufmethode. Aber es ist die gleiche Funktion, aber sie unterscheidet sich, nachdem sie einem Mitglied eines Objekts zugewiesen wurde. Nachdem einem Mitglied eines Objekts eine Funktion zugewiesen wurde, wird diese nicht mehr als Funktion, sondern als Methode bezeichnet. Zum Beispiel:};
var o = {};
o.fn = func;
//Compare
alert(o.fn === func);
// Call
func();
o.fn();
Hier ausführen Dadurch sind beide Funktionen identisch, das gedruckte Ergebnis ist also wahr. Da jedoch die Aufrufe der beiden Funktionen unterschiedlich sind, druckt der Aufruf von func [Objektfenster], während das Druckergebnis von o.fn [Objektobjekt] ist.
3. Konstruktor-Aufrufmodus
Im reinen Funktionsmodus bezieht sich dies auf das Fenster, im Objektmethodenmodus auf das aktuelle Objekt. Zusätzlich zu diesen beiden Fällen können Funktionen in JavaScript auch Konstruktoren sein. Die Syntax für die Verwendung einer Funktion als Konstruktor besteht darin, dem Funktionsaufruf das Schlüsselwort new voranzustellen. Zum Beispiel Code:
1. Alle Attribute, die vom Objekt verwendet werden müssen, müssen sich daran orientieren
2. Die Bedeutung der Return-Anweisung der Funktion wurde neu geschrieben. Wenn ein Nicht-Objekt zurückgegeben wird, wird dieses zurückgegeben.dies
im Konstruktor
Wir müssen den Prozess der Objekterstellung analysieren, um die Bedeutung dessen zu verstehen. Zum Beispiel der folgende Code:2. Führen Sie als Nächstes das Schlüsselwort new aus, um ein Objekt zu erstellen, ruft einen Verweis auf das Objekt ab und übergibt den Verweis auf das neue Objekt an die Funktion.
3. Führen Sie dann die Funktion aus und übergeben Sie die übergebene Objektreferenz an diese. Mit anderen Worten, im Konstruktor ist dies das gerade von new erstellte Objekt.
4. Fügen Sie dann Mitglieder hinzu, dh fügen Sie dem Objekt Mitglieder hinzu.
5. Schließlich endet die Funktion, gibt dies zurück und übergibt dies an die Variable auf der linken Seite.
Nachdem wir die Ausführung des Konstruktors analysiert haben, können wir feststellen, dass dies im Konstruktor das aktuelle Objekt ist.
Rückgabe
im Konstruktor
Die Bedeutung von return im Konstruktor hat sich geändert. Wenn im Konstruktor ein Objekt zurückgegeben wird, bleibt die ursprüngliche Bedeutung erhalten. Wenn ein Nicht-Objekt zurückgegeben wird, z. B. Zahlen, Boolesche Werte und Zeichenfolgen, wird dies zurückgegeben. Wenn keine Rückgabeanweisung vorhanden ist, wird auch dies zurückgegeben:4. Anrufmodus anwenden
Zusätzlich zu den oben genannten drei Aufrufmodi verfügen Funktionen als Objekte auch über Anwendungsmethoden und Aufrufmethoden, die verwendet werden können. Dies ist der vierte Aufrufmodus, den ich den Anwendungsmodus nenne.Führen Sie zunächst den Anwendungsmodus ein. Zunächst kann der Anwendungsmodus als eine flexible Verwendungsmethode bezeichnet werden. Schauen Sie sich zunächst die Syntax an: Funktionsname.apply(Objekt, Parameterarray);
Die Syntax hier ist ziemlich unklar, also verwenden wir Beispiele zur Veranschaulichung:
1. Erstellen Sie zwei neue js-Dateien, nämlich „js1.js“ und „js2.js“;
2. Code hinzufügen
var func2 = function() {
this.name = "Programmer";
};
var o = {};
func2 (o);
alert(o.name);
Die Parameter hier sind die Parameter der Methode selbst, sie müssen jedoch in Form eines Arrays gespeichert werden. Zum Beispiel der Code:
var func = function(name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
};
//Objekt erstellen
var o = {};
//Mitglieder zum Objekt hinzufügen
// Modus anwenden
var p1 = func.apply(o, [" Zhao Xiaohu", 19, "Male"]);
// Anrufmodus
var p2 = func.call(o, "Zhao Xiaohu", 19, "Male");
Tatsächlich können Sie die Bedeutung dieser Funktionen mithilfe des Anwendungsmodus und des Aufrufmodus auf beliebige Weise steuern. Sie werden häufig im Entwurfsmodus von Funktions-JS verwendet. Zusammenfassend lässt sich sagen, dass es in js vier Modi für Funktionsaufrufe gibt, nämlich: Funktional, Methode, Konstruktor und Anwenden. In diesen Modi ist dies folgende Bedeutung: In der Funktion ist dies das globale Objektfenster, in der Methode dies bezieht sich auf das aktuelle Objekt. Im Konstruktor bezieht sich dies auf das erstellte Objekt. Im Apply-Modus kann dies beliebig angegeben werden. Wenn im Apply-Muster null verwendet wird, handelt es sich um ein Funktionsmuster, und wenn ein Objekt verwendet wird, handelt es sich um ein Methodenmuster.
5. Ausführliche Beispiele
Beenden wir diesen Artikel mit einem Fall. Fallbeschreibung: Es gibt ein Div mit der ID dv. Wenn die Maus darüber bewegt wird, wird die Höhe direkt wiederhergestellt: