Der Inhalt dieses Artikels ist eine detaillierte Analyse davon in JavaScript. Ich hoffe, dass er für Freunde in Not hilfreich ist.
Sie müssen sich nur ein paar Formeln merken, um den Sinn dahinter richtig zu finden:
1. Egal wie die Funktion oder Methode deklariert wird, es kommt darauf an, wer die Funktion oder Methode letztendlich aufruft . Wer auch immer diese Funktion oder Methode aufruft, wer darauf hinweist, ist wer
2. Schauen Sie sich die Ausführungszeit an, solange die Funktion (Funktion) wird nicht aufgerufen, wenn sie an ein Objekt gebunden ist, und es handelt sich um ein Fenster.
3.ES6, dies in der Pfeilfunktion wird im Kontext daran gebunden, wer auch immer dies beim Erstellen der Pfeilfunktion ist, wird in Zukunft immer diese Person sein
1 . In gewöhnlichen Funktionen Eine globale Funktion davon
entspricht dem Hinzufügen einer Methode zum Fensterobjekt, sodass der Aufruf der Willkommensfunktion in Zeile 5 und der Aufruf der Willkommensfunktion in Zeile 6 im Wesentlichen gleich sind. Die Begrüßungsfunktion ist also letztendlich das Fensterobjekt, das aufgerufen wird. Dies innerhalb der Begrüßungsfunktion zeigt also auf das Fensterobjekt
Das laufende Ergebnis ist window , window.
2. Als Objekt wird diese
sayHi-Methode vom obj-Objekt aufgerufen, daher zeigt dies in der sayHi-Methode auf das obj-Objekt im obj-Objekt.
Das Ergebnis ist wie folgt
3 🎜>
(1) Rufen Sie den Konstruktor direkt auf
Zeile 3: Beim Aufruf der Funktion cat1 wird das Schlüsselwort new nicht verwendet. Dies bedeutet, dass die Funktion cat verwendet wird Wird aufgerufen, wenn auf das Fenster geklickt wird. In der Student-Funktion ist dies also ein Fenster. Zeile 1 und Zeile 2 fügen also Namens- und Altersattribute zum Fenster hinzu. Die Werte lauten Lulu bzw. 12. Wenn das Schlüsselwort return nicht darin geschrieben ist Bei der Funktion ist der Standardrückgabewert undefiniert. Cat1 empfängt also undefiniert. Das gesamte Ausgabeergebnis ist wie folgt
(2) Verwenden Sie new, um den Konstruktor aufzurufen
Das neue Schlüsselwort erstellt ein Objekt, verweist dieses im Konstruktor auf dieses Objekt und gibt dieses Objekt dann nach der Ausführung automatisch zurück Die dritte Codezeile, cat1, ist das neue Schlüsselwort. Das erstellte und zurückgegebene Objekt. Die Namens- und Altersattribute wurden diesem Objekt in Zeile 1 und Zeile 2 hinzugefügt. Das Ausführungsergebnis des obigen Codes lautet also wie folgt:4 Ändern Sie den Standardzeiger davon in der Funktion: call, apply, bind
4.1.call();
Syntax: Funktionsname.call (erwarten Sie, auf wen dies innerhalb der Funktion zeigt, Parameter 1, Parameter 2.... );4.2.apply();
Syntax: Funktionsname.apply(neuer Zeiger darauf, Array oder Pseudo-Array); Das Ausgabeergebnis ist: Die Ausgabeergebnisse von apply() und call() sind gleich. Der Unterschied besteht darin, dass gelten () hat nur 2 Parameter. Der erste Parameter ist der neue Zeiger davon, und der zweite Parameter ist ein Array oder Pseudo-Array. Beim Aufruf werden die Elemente des zweiten Parameters (Array oder Pseudo-Array) dem Formal zugewiesen Parameter der aufgerufenen Funktion der Reihe nach. Anwendbare Bedingungen: Verwenden Sie den Aufruf, wenn der Parameter eindeutig bekannt ist. Im Zweifelsfall verwenden Sie „Apply“, schieben die Parameter dann in das Array und übergeben sie dort.4.3.bind();
Die Methode bind() erstellt eine neue Funktion. Wenn dieses Klickereignis aufgerufen werden muss, ist es dieser Schlüssel auf den übergebenen Wert gesetzt werden (bezieht sich hier auf den beim Aufruf von bind() übergebenen Parameter Syntax: Funktionsname.bind(neuer Zeiger davon, Sie können Parameter schreiben oder nicht);Verwenden Sie bind(), um die Funktion getSum() aufzurufen, aber die Funktion getSum() wird zu diesem Zeitpunkt nicht ausgeführt, sondern gibt einen Funktionskörper zurück, der genau mit der Funktion getSum() identisch ist, dies jedoch getan hat Es wird zu einer Funktion des obj-Objekts und diese Funktion wird von der neu deklarierten Variablen empfangen. Im Allgemeinen werden die tatsächlichen Parameter nach der Änderung übernommen.Eine Funktion (gewöhnliche Funktion, Konstruktor) in JavaScript ist im Wesentlichen ein Objekt, das vom Function()-Konstruktor instanziiert wird, und die drei Methoden call, apply und bind werden dann alle in Function.prototype im Prototyp definiert Dies bedeutet, dass alle Funktionen in JavaScript auf diese drei Methoden klicken können
5.Kontextaufrufmodus, achten Sie auf die Details:
5.1 Bei Verwendung Beim Aufrufen einer Funktion in Im Funktionskontextmodus zeigt der erste Parameter nicht auf ein Objekt, sondern auf einen Wert eines Basisdatentyps. Zeigt dies also in der Funktion auf einen Wert dieses Typs? Der Code lautet wie folgt:
5.2 Welche Funktion im Kontextmodus aufgerufen wird, die Änderung ist die
6. Verwendungsszenarien des Funktionskontextaufrufmodus
6.1 Finden Sie den Maximalwert eines Arrays, dessen Elemente alle Ganzzahlen sind
6.2 Pseudo-Array in echtes Array konvertieren
6.3 Konstruktorvererbung ausleihen
6.4 Datentyp erkennen
Das obige ist der detaillierte Inhalt vonDetaillierte Analyse hierzu in JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!