Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mengalih keluar Pendengar Acara Ditambah dengan Kaedah .bind()?

Bagaimana untuk Mengalih keluar Pendengar Acara Ditambah dengan Kaedah .bind()?

Susan Sarandon
Lepaskan: 2024-10-26 12:49:29
asal
523 orang telah melayarinya

How to Remove Event Listeners Added with the .bind() Method?

Mengalih keluar Pendengar Acara Ditambah dengan Bind()

Apabila bekerja dengan pendengar acara dalam JavaScript, adalah penting untuk mengalih keluarnya apabila tidak diperlukan lagi, terutamanya apabila ia telah ditambah menggunakan kaedah .bind().

.bind() dan Event Listeners

Kaedah .bind() mencipta fungsi baharu yang mempunyai konteks tertentu yang terikat kepadanya. Ini membolehkan fungsi dipanggil di luar konteks di mana ia ditakrifkan pada asalnya. Dalam contoh yang disediakan:

this.myButton.addEventListener("click", this.clickListener.bind(this));
Salin selepas log masuk

.bind(this) mencipta fungsi baharu yang memastikan kata kunci ini dalam clickListener merujuk kepada contoh MyClass.

Mengalih keluar Pendengar

Untuk melumpuhkan butang dalam contoh ini, kami perlu mengalih keluar pendengar acara. Walau bagaimanapun, memandangkan .bind() mencipta rujukan fungsi baharu, kami tidak boleh mengalih keluar fungsi asal begitu sahaja.

Penyelesaian: Simpan Rujukan Fungsi

Penyelesaian adalah untuk menyimpan rujukan fungsi dikembalikan oleh .bind() dalam pembolehubah sebelum menambahkannya sebagai pendengar acara:

const clickListenerBind = this.clickListener.bind(this);
this.myButton.addEventListener("click", clickListenerBind);
Salin selepas log masuk

Kini, kita boleh mengalih keluar pendengar menggunakan rujukan yang disimpan:

this.myButton.removeEventListener("click", clickListenerBind);
Salin selepas log masuk

Kaedah Lain

Walaupun kaedah yang diterangkan di atas memastikan pengalihan keluar pendengar yang ditambah dengan .bind(), tiada alternatif pilihan.

Atas ialah kandungan terperinci Bagaimana untuk Mengalih keluar Pendengar Acara Ditambah dengan Kaedah .bind()?. 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