Rumah  >  Artikel  >  hujung hadapan web  >  Cara Mengekalkan Skop Contoh dalam Pengendali Acara JavaScript: Menangkap "ini" dengan Pengaliasan Pembolehubah?

Cara Mengekalkan Skop Contoh dalam Pengendali Acara JavaScript: Menangkap "ini" dengan Pengaliasan Pembolehubah?

Barbara Streisand
Barbara Streisandasal
2024-11-07 21:25:03783semak imbas

How to Preserve Instance Scope in JavaScript Event Handlers: Capturing

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!

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