Pendengar Acara: Menghantar Argumen kepada Fungsi Pendengar
Apabila melampirkan pendengar acara menggunakan kaedah addEventListener, mungkin terdapat situasi di mana anda perlu lulus hujah kepada fungsi pendengar. Satu senario sedemikian melibatkan mendapatkan semula nilai pembolehubah yang ditakrifkan di luar skop pendengar.
Senario dan Masalah
Pertimbangkan kod berikut:
var someVar = some_other_function(); someObj.addEventListener("click", function(){ some_function(someVar); }, false);
Di sini, someVar ialah pembolehubah yang ditakrifkan di luar fungsi pendengar, dan kami berhasrat untuk menyampaikan nilainya sebagai hujah kepada some_function apabila peristiwa "klik" berlaku. Walau bagaimanapun, dalam fungsi pendengar, someVar dianggap sebagai pembolehubah baharu, mengakibatkan isu di mana nilai yang dimaksudkan tidak boleh diakses.
Penyelesaian Cadangan: Menggunakan Sifat Sasaran Acara
Daripada memberikan hujah secara eksplisit, pertimbangkan untuk mengakses sifat sasaran acara untuk mendapatkan maklumat yang diperlukan. Dalam contoh di atas, anda boleh melampirkan sifat tersuai myParam pada someObj, seperti yang ditunjukkan di bawah:
const someInput = document.querySelector('button'); someInput.addEventListener('click', myFunc, false); someInput.myParam = 'This is my parameter'; function myFunc(evt) { window.alert(evt.currentTarget.myParam); }
Kini, dalam fungsi pendengar myFunc, anda boleh mengakses nilai parameter dengan merujuk evt.currentTarget.myParam. Kaedah ini menghapuskan keperluan untuk meluluskan hujah secara eksplisit dan memastikan nilai yang betul diperoleh.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyalurkan Hujah kepada Fungsi Pendengar Acara dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!