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

Patricia Arquette
Lepaskan: 2024-10-26 03:03:03
asal
487 orang telah melayarinya

## 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);
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!