Heim > Artikel > Web-Frontend > Zusammenfassung der Javascript-Implementierung von Methodenaufrufen und Methodenauslösern_Grundkenntnisse
In js ist das Schlüsselwort this eine interessante Sache, aber seine Richtung verwirrt Anfänger oft.
Um dieses Schlüsselwort zu verstehen, müssen tatsächlich zwei Probleme geklärt werden: „Methodenaufruf und Methodenauslösung“
Schauen wir uns nun einen Code an
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>function</title> <script> function showThis(){ console.info(this); } function Test1(){ this.f=showThis; } function Test2(){ this.f=function(){ showThis(); } } showThis();//window new Test1().f();//Test1 new Test2().f();//window </script> </head> <body> </body> </html>
Zeile 20 gibt das Fensterobjekt aus, was leicht zu verstehen ist, aber Zeile 21 gibt das Instanzobjekt von Test1 aus, während Zeile 22 das Fensterobjekt ausgibt. Als wir uns die Konstruktion von Test1 und Test2 ansahen, stellten wir fest, dass Methode f schließlich die Methode showThis ausführte. Aber dieser Punkt in showThis ist anders. Dies liegt daran, dass die f-Methode in Test1 direkt auf showThis verweist, new Test1().f() direkt die showThis-Methode mit der Instanz von Test1 aufruft und der Aufrufer die Instanz von Test1 ist. Und new Test2().f() löst die showThis-Methode des Fensterobjekts in der Instanzmethode f von Test2 aus, wobei diese auf das Aufruferfenster und nicht auf die Instanz des Auslösers Test2 verweist.
Du kannst es jetzt finden. Dies zeigt auf den Aufrufer, und der Trigger drängt den Aufrufer einfach dazu, die angegebene Methode auszuführen.