Bagaimana untuk Melepasi Nilai (Bukan Rujukan) Pembolehubah JavaScript kepada Fungsi?

Patricia Arquette
Lepaskan: 2024-10-25 08:00:03
asal
637 orang telah melayarinya

How to Pass the Value (Not the Reference) of a JavaScript Variable to a Function?

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!