Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mensimulasikan Rujukan Laluan dalam JavaScript?

Bagaimanakah Saya Boleh Mensimulasikan Rujukan Laluan dalam JavaScript?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-01 02:36:11504semak imbas

How Can I Simulate Pass-by-Reference in JavaScript?

Cara Melepasi Pembolehubah melalui Rujukan dalam JavaScript

Melalui pembolehubah melalui rujukan membolehkan fungsi mengubah suai pembolehubah asal dalam konteks panggilan. Walaupun JavaScript tidak mempunyai rujukan lulus yang benar, ia menyediakan cara untuk mencapai kefungsian yang serupa.

Melalui Objek

Untuk mengubah suai kandungan objek, hantarkannya mengikut nilai kepada fungsi. JavaScript membenarkan mengubah suai sifat objek, seperti yang dilihat dalam contoh di bawah:

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

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

alterObject(myObj);

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

Mengubah Suai Tatasusunan

Lelaran melalui sifat tatasusunan dengan indeks berangka untuk mengubah suai sel individu:

var arr = [1, 2, 3];

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

Mencuba Rujukan Laluan Sebenar (Tidak Mungkin)

Perhatikan bahawa benar rujukan lewat (mengubah suai pembolehubah mudah dalam konteks panggilan) tidak mungkin dalam JavaScript. Contoh berikut menggambarkan konsep ini:

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 , JavaScript tidak menyokong rujukan pas-demi yang benar, di mana fungsi boleh mengubah suai pembolehubah mudah dalam konteks panggilan. Sebaliknya, JavaScript hanya membenarkan menghantar rujukan kepada objek yang boleh diubah suai, yang mengubah suai kandungannya tetapi bukan rujukannya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mensimulasikan Rujukan Laluan dalam JavaScript?. 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