Dalam js, kata kunci ini adalah perkara yang menarik, tetapi arahnya sering mengelirukan pemula.
Sebenarnya, untuk memahami kata kunci ini, dua isu perlu dijelaskan - "memanggil kaedah dan mencetuskan kaedah"
Sekarang mari kita lihat sekeping kod
<!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>
Baris 20 mencetak objek tetingkap, yang mudah difahami, tetapi baris 21 mencetak objek contoh Test1, manakala baris 22 mencetak objek tetingkap. Melihat kepada pembinaan Test1 dan Test2, kami mendapati kaedah f akhirnya melaksanakan kaedah showThis. Tetapi perkara ini dalam showThis berbeza. Ini kerana kaedah f dalam Test1 menghala terus ke showThis, Test1().f() baharu secara langsung memanggil kaedah showThis dengan tika Test1, dan pemanggil ialah tika Test1. Dan Test2().f() baharu mencetuskan kaedah showThis bagi objek tetingkap dalam kaedah contoh f Test2, di mana ini menghala ke tetingkap pemanggil dan bukannya contoh pencetus Test2.
Anda boleh menemuinya sekarang. ini menunjuk kepada pemanggil, dan pencetus hanya menolak pemanggil untuk melaksanakan kaedah yang ditentukan.