1. Die Richtung davon in der Funktion Die Referenz hierzu wird beim Aufruf der Funktion ermittelt. Verschiedene Aufrufmethoden bestimmen, wohin dies verweist, und verweisen im Allgemeinen auf den Anrufer. 1. Gewöhnliche FunktionenFunktion fn(){ console.log('normale Funktion diese:' + diese); } fn() Das Druckergebnis ist: Es ist ersichtlich, dass beim Aufruf einer normalen Funktion dies auf das Fenster verweist 2. KonstruktorFunktion Stern(){ console.log('das ist das des Konstruktors:' + das); } neuer Stern () Das Druckergebnis ist: Es ist ersichtlich, dass beim Aufruf einer Objektmethode dies auf das Instanzobjekt der Methode verweist. 3. Objektmethodenvar o = { drucken: Funktion(){ console.log('Objektmethode ist dies:'+dieses); } } o.drucken() Das Druckergebnis ist: Es ist ersichtlich, dass beim Aufruf einer Objektmethode diese auf das Objekt verweist, zu dem die Methode gehört. 4. Ereignisbindungsmethode Wenn wir einer Schaltfläche ein Bindungsereignis hinzufügen, worauf verweist dieses dann? Beispielsweise gibt es jetzt eine Schaltfläche, und jetzt fügen wir ihr wie folgt ein Klickereignis hinzu: <Text> <button>Schaltfläche</button> <Skript> var btn = document.querySelector('Schaltfläche'); btn.onclick = Funktion(){ console.log('dieses des Bindungsereignisses:'+dieses); } </Skript> </body> Wenn wir auf die Schaltfläche klicken, erhalten wir: Es ist ersichtlich, dass dies beim Aufrufen des Bindungsereignisses auf das Bindungsereignisobjekt verweist. 5. TimerfunktionSchreiben Sie eine Timerfunktion und rufen Sie sie nach 1 Sekunde auf. Fenster.setTimeout(Funktion(){ console.log('Timer ist dies:'+dies); },1000) Das Druckergebnis ist: Es ist ersichtlich, dass beim Aufruf der Timerfunktion dies auf das Fenster verweist. 6. Funktion sofort ausführenDefinieren Sie eine Funktion, die sofort ausgeführt werden soll: (Funktion(){ console.log('this:'+this der Funktion, die sofort ausgeführt werden soll); })(); Das Druckergebnis ist: Es ist ersichtlich, dass dies auf das Fenster verweist, wenn der Funktionsaufruf sofort ausgeführt wird. Zusammenfassend können wir feststellen:
2. Ändern Sie den this-Zeiger innerhalb der FunktionIn einer Funktion ist der this-Zeiger jedoch nicht statisch. Wir können den this-Zeiger durch einige Methoden ändern, hauptsächlich durch die folgenden Methoden. Zuvor haben wir bei der Zusammenfassung der Frage, wohin dies im Prototypobjekt verweist, die Call-Methode und die Apply-Methode erwähnt. Ich werde sie hier nicht wiederholen und nur Beispiele geben. 1. Methode aufrufenDefinieren Sie zunächst ein Objekt und eine Funktion. var o = { Name: "xl" } Funktion fn(){ konsole.log(dies); } Dies ist derzeit eine normale Funktion. Wie bereits erwähnt, zeigt dies einer normalen Funktion auf windiw. Wenn wir dies nun auf das o-Objekt zeigen möchten, sollten wir: fn.call(o) Das ausgedruckte Ergebnis lautet: dies weist auf eine erfolgreiche Änderung hin. 2. Methode anwendenGleiche Methode wie oben. var o = { Name:'xl' } Funktion fn(){ konsole.log(dies); } fn.apply(o); Das Druckergebnis ist: 3. Bindemethode Die Methode bind() ruft die Funktion nicht auf. Aber dieser Zeiger kann innerhalb der Funktion geändert werden. Grammatik: Spaß.binden(diesesArg, arg1, arg2, …) thisArg: der this-Wert, der angegeben wird, wenn die fun-Funktion ausgeführt wird arg1, arg2: andere übergebene Parameter Gibt eine Kopie der ursprünglichen Funktion zurück, die mit dem angegebenen this-Wert und den Initialisierungsparametern transformiert wurde Wenn wir also nur den This-Zeiger ändern und die Funktion nicht aufrufen möchten, können wir „Bind“ verwenden. Wie folgt (immer noch unter Verwendung des obigen Beispiels): var o = { Name:'xl' } Funktion fn(){ konsole.log(dies); } var f = fn.bind(o); F(); Das Druckergebnis ist: Hierbei ist zu beachten: Da die Methode bind() keine Funktion aufruft, wird nach der Änderung des this-Zeigers eine neue Funktion zurückgegeben, sodass wir diese neue Funktion einem f zuweisen und sie dann über f aufrufen können. 3. Aufruf der Apply-Bind-Zusammenfassung1. ÄhnlichkeitenSie können diesen Zeiger innerhalb der Funktion ändern. 2. Unterschiede
3. Anwendungsszenarien
ZusammenfassenDieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalt auf 123WORDPRESS.COM lesen können! Das könnte Sie auch interessieren:
|
<<: js, css, html bestimmen die verschiedenen Versionen des Browsers
>>: Detaillierte Erläuterung der Idee, mit CSS-Animation den Punkteeffekt zu erzielen
Inhaltsverzeichnis Was ist FormData? Eine praktis...
1. Lassen Sie uns zunächst das relevante Wissen z...
Einführung Wenn eine große Anzahl an Systemen ins...
Inhaltsverzeichnis React-Fasererstellung 1. Bevor...
Inhaltsverzeichnis 1. Grundlegende Verwendung 2. ...
Inhaltsverzeichnis Installationsvoraussetzungen S...
Dieser Artikel beschreibt, wie Sie Apache auf ein...
<br />Vorheriger Artikel: Webdesign-Tutorial...
Ein gemeinsamer Index wird auch als zusammengeset...
Detaillierte Beschreibung der Verwendung des Medi...
Code kopieren Der Code lautet wie folgt: <!DOC...
Es gibt viele Gründe für den Export von MySQL-Dat...
Inhaltsverzeichnis Was ist das Apollo Configurati...
Da der Docker-Daemon an den Unix-Socket des Hosts...