Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Melepasi Nilai (Bukan Rujukan) Pembolehubah JavaScript kepada Fungsi?
Cara menghantar Nilai (bukan Rujukan) Pembolehubah JS kepada Fungsi
Dalam bahasa dinamik seperti JavaScript, pembolehubah adalah diluluskan secara rujukan secara lalai. Ini bermakna bahawa sebarang perubahan yang dibuat kepada pembolehubah dalam fungsi akan ditunjukkan dalam pembolehubah asal di luar fungsi. Dalam situasi tertentu, tingkah laku ini tidak diingini dan anda mungkin perlu menghantar nilai pembolehubah kepada fungsi sebaliknya.
Untuk penyemak imbas moden, pertimbangkan untuk menggunakan kata kunci let atau const untuk menentukan pembolehubah berskop blok:
<code class="js">for (let i = 0; i < results.length; i++) { let marker = results[i]; google.maps.event.addListener(marker, 'click', () => change_selection(i)); }</code>
Pendekatan ini memastikan bahawa setiap lelaran gelung mencipta skop baharu untuk pembolehubah i, menghalang isu di mana setiap pendengar menggunakan nilai hasil.panjang pada penghujung gelung.
Jika anda bekerja dengan penyemak imbas lama, buat skop berasingan untuk setiap lelaran gelung dengan menghantar pembolehubah sebagai parameter fungsi:
<code class="js">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 memanggilnya dengan pembolehubah sebagai hujah pertama, anda lulus demi nilai dengan berkesan dan membuat penutupan. Ini memastikan bahawa setiap pendengar mempunyai salinan pembolehubah i sendiri, merujuk nilainya pada masa pendengar dicipta.
Atas ialah kandungan terperinci Bagaimana untuk Melepasi Nilai (Bukan Rujukan) Pembolehubah JavaScript kepada Fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!