Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mengalih Keluar Pendengar Acara Ditambah dengan `bind()` dalam JavaScript?
Mengalih keluar Pendengar Acara Ditambah dengan Bind
Dalam JavaScript, pendengar acara boleh ditambah menggunakan kaedah bind(). Kaedah ini mencipta rujukan fungsi baharu, membenarkan pendengar acara mengekalkan akses kepada konteks yang dikehendaki. Walau bagaimanapun, apabila ia datang untuk mengalih keluar pendengar acara sedemikian, pendekatan standard melibatkan penjejakan secara manual setiap pendengar yang ditambah dengan bind().
Rujukan Pendengar Ikatan Penjejakan
Satu kaedah untuk mengalih keluar pendengar acara yang ditambah dengan bind() adalah untuk menjejaki rujukan fungsi. Ini memerlukan mengekalkan pembolehubah untuk menyimpan fungsi terikat dan menghantarnya secara eksplisit apabila mengalih keluar pendengar.
<code class="js">// Store the bound function reference var clickListenerBind = this.clickListener.bind(this); // Add the event listener with the bound reference this.myButton.addEventListener("click", clickListenerBind); // Remove the event listener using the stored reference this.myButton.removeEventListener("click", clickListenerBind);</code>
Pendekatan Lebih Mudah
Alternatif yang lebih ringkas dan mudah untuk secara manual menjejak rujukan pendengar melibatkan memberikan rujukan fungsi terikat kepada pembolehubah secara langsung. Ini membolehkan pendengar dialih keluar dengan cara yang sama seperti mana-mana pendengar acara lain.
<code class="js">const listener = this.clickListener.bind(this); this.myButton.addEventListener("click", listener); this.myButton.removeEventListener("click", listener);</code>
Pendekatan ini menghapuskan keperluan untuk pembolehubah penjejakan tambahan dan memastikan pengalihan keluar pendengar acara yang konsisten, tanpa mengira cara ia ditambahkan pada mulanya.
Atas ialah kandungan terperinci Bagaimana untuk Mengalih Keluar Pendengar Acara Ditambah dengan `bind()` dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!