Rumah >hujung hadapan web >tutorial js >Ringkasan pelaksanaan javascript bagi kaedah panggilan dan kaedah triggering_Pengetahuan asas

Ringkasan pelaksanaan javascript bagi kaedah panggilan dan kaedah triggering_Pengetahuan asas

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBasal
2016-05-16 15:07:591317semak imbas

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.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn