Rumah >hujung hadapan web >tutorial js >Bagaimanakah JavaScript Mengendalikan Hantaran Pembolehubah dan Pengubahsuaian Objek?

Bagaimanakah JavaScript Mengendalikan Hantaran Pembolehubah dan Pengubahsuaian Objek?

Patricia Arquette
Patricia Arquetteasal
2024-12-16 05:41:19195semak imbas

How Does JavaScript Handle Variable Passing and Object Modification?

Melalui Pembolehubah melalui Rujukan dalam JavaScript

JavaScript tidak mempunyai konsep "laluan rujukan" yang terdapat dalam bahasa pengaturcaraan lain. Walau bagaimanapun, ia membenarkan menghantar objek mengikut nilai, membenarkan fungsi mengubah suai kandungannya.

Melalui Objek mengikut Nilai

Untuk mengubah suai kandungan objek dalam fungsi, lulus objek sendiri sebagai parameter:

function alterObject(obj) { obj.foo = "goodbye"; }
var myObj = { foo: "hello world" };
alterObject(myObj);
console.log(myObj.foo); // "goodbye"

Mengubah suai Tatasusunan

Untuk mengubah suai elemen tatasusunan, ulangi indeks berangkanya dan kemas kini setiap sel secara individu:

var arr = [1, 2, 3];
for (var i = 0; i < arr.length; i++) arr[i] = arr[i] + 1;

"Pass by Rujukan" dalam JavaScript

JavaScript tidak mempunyai kefungsian "pass by reference" sebenar. Ini bermakna adalah mustahil untuk mengubah suai nilai pembolehubah asal dalam panggilan fungsi, tidak seperti dalam bahasa seperti C .

Dalam contoh di bawah, menukar nilai x dan y gagal kerana nilai tersebut diluluskan dan tidak boleh diubah suai terus dalam fungsi:

function swap(a, b) { var tmp = a; a = b; b = tmp; }
var x = 1, y = 2;
swap(x, y);
console.log("x is " + x + ", y is " + y); // "x is 1, y is 2"

Kesimpulan

Semasa JavaScript tidak menawarkan "laluan rujukan" dalam erti kata tradisional, menghantar objek dan memanipulasi kandungannya membolehkan kefungsian yang serupa. Ambil perhatian bahawa teknik ini mengubah suai kandungan objek, bukan rujukan objek itu sendiri.

Atas ialah kandungan terperinci Bagaimanakah JavaScript Mengendalikan Hantaran Pembolehubah dan Pengubahsuaian Objek?. 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
Artikel sebelumnya:Konsep hujung hadapan IIArtikel seterusnya:Konsep hujung hadapan II