Rumah > Artikel > hujung hadapan web > Cara Mengekalkan Skop Contoh dalam Pengendali Acara JavaScript: Menangkap "ini" dengan Pengaliasan Pembolehubah?
Skop Pembolehubah dalam Pengendali Acara: Teka-teki "ini"
Dalam JavaScript, kaedah contoh yang digunakan sebagai panggilan balik pengendali acara boleh membawa kepada isu skop . Apabila pengendali acara dicetuskan, skop "ini" beralih daripada contoh yang dimaksudkan kepada elemen yang menggunakan panggilan balik. Ini memerlukan penggunaan pembolehubah untuk "menangkap" dan mengekalkan skop kejadian.
Teknik mengisytiharkan pembolehubah "diri" kepada alias "ini" dan menyerahkannya kepada pengendali acara, seperti yang dilihat dalam coretan kod, ialah penyelesaian biasa. Walau bagaimanapun, penampilannya yang tidak konvensional mungkin menimbulkan kebimbangan tentang kesesuaiannya.
Alternatif kepada pengalianan "diri sendiri":
Isu teras bukan jQuery-spesifik tetapi berkaitan dengan penutupan JavaScript tingkah laku. Walaupun penutupan membenarkan fungsi terbenam untuk mengakses pembolehubah daripada skop induknya, pembolehubah pseudo ini berkelakuan berbeza. Seperti yang ditunjukkan oleh kod:
// Attempt to use "this" in embedded functions function xyz() { console.log(this); // Incorrect }
Tingkah laku ini memerlukan pendekatan yang diubah suai:
// Assign "this" to a variable (i.e., abc) and use the variable instead var abc = this; function xyz() { console.log(abc); // Correct }
Dengan menamakan "ini" dengan abc, akses penutupan kepada skop contoh yang dimaksudkan dikekalkan. Teknik ini boleh digunakan pada pembolehubah pseudo lain, seperti "argumen."
Oleh itu, sementara kaedah pengalianan "diri" berfungsi, alternatif untuk memberikan dan merujuk "ini" secara eksplisit kepada pembolehubah menawarkan lebih banyak penyelesaian konvensional dan mantap kepada isu skop dalam fungsi panggil balik pengendali acara.
Atas ialah kandungan terperinci Cara Mengekalkan Skop Contoh dalam Pengendali Acara JavaScript: Menangkap "ini" dengan Pengaliasan Pembolehubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!