Cara Menghantar Nilai Pembolehubah JS kepada Fungsi
Apabila melelaran melalui tatasusunan dan menambah pendengar acara pada setiap elemen, nilai gelung pemboleh ubah pembilang mungkin tidak dapat dikekalkan seperti yang diharapkan. Daripada menangkap nilai semasa, pendengar menggunakan nilai akhir selepas gelung ditamatkan. Untuk menangani isu ini dan memberikan nilai sebenar (bukan rujukan) kepada fungsi, pertimbangkan pendekatan berikut:
Pelayar Moden:
Gunakan kata kunci let atau const untuk mengisytiharkan pembolehubah berskop blok:
<code class="javascript">for (let i = 0; i < results.length; i++) { let marker = results[i]; google.maps.event.addListener(marker, 'click', () => change_selection(i)); }</code>
Pelayar Lama:
Buat skop berasingan untuk mengekalkan nilai pembolehubah dengan menghantarnya sebagai parameter kepada fungsi bersarang :
<code class="javascript">for (var i = 0; i < results.length; i++) { (function (i) { marker = results[i]; google.maps.event.addListener(marker, 'click', function() { change_selection(i); }); })(i); }</code>
Dengan menggunakan fungsi tanpa nama dan menghantar pembolehubah sebagai hujah, anda secara berkesan menghantar nilainya kepada fungsi dan membuat penutupan. Ini memastikan setiap pendengar mempunyai akses kepada nilai yang betul pada masa penciptaan.
Atas ialah kandungan terperinci Bagaimana untuk Melepasi Nilai Pembolehubah Betul kepada Fungsi Apabila Menggunakan Pendengar Acara dalam Gelung?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!