Rumah >hujung hadapan web >tutorial js >Adakah JavaScript Lulus Pembolehubah mengikut Rujukan atau Mengikut Nilai?

Adakah JavaScript Lulus Pembolehubah mengikut Rujukan atau Mengikut Nilai?

Barbara Streisand
Barbara Streisandasal
2024-12-13 15:12:12704semak imbas

Does JavaScript Pass Variables by Reference or by Value?

Meluluskan Pembolehubah melalui Rujukan dalam JavaScript

Apabila melakukan berbilang operasi pada pembolehubah dalam satu gelung, memahami cara JavaScript mengendalikan penghantaran pembolehubah adalah penting. JavaScript, tidak seperti kebanyakan bahasa pengaturcaraan lain, tidak menyokong lulus melalui rujukan. Walau bagaimanapun, merujuk objek membenarkan pengubahsuaian kandungannya dalam fungsi.

function alterObject(obj) {
  obj.foo = "goodbye";
}

var myObj = { foo: "hello world" };

alterObject(myObj);

alert(myObj.foo); // "goodbye"

Menyalurkan pada tatasusunan juga boleh dilakukan, membenarkan pengubahsuaian setiap sel.

var arr = [1, 2, 3];

for (var i = 0; i < arr.length; i++) {
  arr[i] = arr[i] + 1;
}

Perlu diperhatikan bahawa rujukan lulus benar melibatkan keupayaan untuk mengubah suai nilai dalam konteks panggilan, yang JavaScript tidak sokongan.

function swap(a, b) {
  var tmp = a;
  a = b;
  b = tmp;
}

var x = 1, y = 2;
swap(x, y);

alert("x is " + x + ", y is " + y); // "x is 1, y is 2"

Tidak seperti C , yang membenarkan rujukan pas-demi-benar, JavaScript hanya menyokong menghantar rujukan kepada objek. Pengubahsuaian kandungan objek dalam fungsi adalah mungkin, tetapi rujukan itu sendiri tidak boleh diubah suai.

Atas ialah kandungan terperinci Adakah JavaScript Lulus Pembolehubah mengikut Rujukan atau Mengikut Nilai?. 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