Rumah  >  Artikel  >  hujung hadapan web  >  ## Bagaimana untuk Mengalih keluar Pendengar Acara yang Terikat dengan `bind()` dengan betul dalam JavaScript?

## Bagaimana untuk Mengalih keluar Pendengar Acara yang Terikat dengan `bind()` dengan betul dalam JavaScript?

Patricia Arquette
Patricia Arquetteasal
2024-10-26 03:03:03488semak imbas

## How to Properly Remove Event Listeners Bound with `bind()` in JavaScript?

Menguruskan Pendengar Acara Berdaftar dengan Bind dalam JavaScript

kaedah addEventListener() dan removeEventListener() digunakan untuk mengendalikan pendaftaran acara dan pengalihan keluar dalam JavaScript. Walau bagaimanapun, apabila pendengar acara diikat menggunakan bind(), pertimbangan tambahan diperlukan untuk pengalihan keluar yang betul.

Isu:

Apabila pendengar acara ditambah dengan bind(), rujukan fungsi baharu dicipta. Ini bermakna fungsi asal tidak boleh dialih keluar terus menggunakan removeEventListener().

Penyelesaian Awal:

Satu pendekatan biasa ialah menjejaki setiap pendengar yang ditambahkan dengan bind() dan keluarkannya secara manual. Walau bagaimanapun, ini menambah overhed dan boleh terdedah kepada ralat.

Penyelesaian Yang Diperbaiki:

Penyelesaian yang lebih baik adalah dengan menetapkan rujukan fungsi terikat kepada pembolehubah. Ini membolehkan penyingkiran mudah kemudian:

var boundListener = this.clickListener.bind(this);
this.myButton.addEventListener("click", boundListener);
...
this.myButton.removeEventListener("click", boundListener);

Kesimpulan:

Dengan memberikan rujukan fungsi terikat kepada pembolehubah, anda boleh mengalih keluar pendengar acara yang ditambahkan dengan bind() tanpa memerlukan pengesanan manual. Pendekatan ini memudahkan pengurusan acara dan mengurangkan risiko ralat.

Atas ialah kandungan terperinci ## Bagaimana untuk Mengalih keluar Pendengar Acara yang Terikat dengan `bind()` dengan betul dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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