Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk Melepasi Nilai (Bukan Rujukan) Pembolehubah JavaScript kepada Fungsi?

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

Patricia Arquette
Patricia Arquetteasal
2024-10-25 08:00:03638semak imbas

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>

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!

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