Rumah >hujung hadapan web >tutorial js >Adakah JavaScript Lulus Pembolehubah mengikut Nilai atau Rujukan, dan Bagaimana Tingkah Laku Ini Boleh Diterangkan?
Gelagat Lulus JavaScript: Mengikut Nilai atau Rujukan
Dalam JavaScript, konsep lulus mengikut nilai dan rujukan memainkan peranan penting dalam memahami bagaimana pembolehubah dan objek berkelakuan. Walaupun sering dilabel sebagai bahasa "laluan rujukan", kebenarannya agak lebih bernuansa.
Melalui Objek mengikut Nilai
Apabila menghantar objek sebagai hujah kepada fungsi, JavaScript sebenarnya menghantar salinan rujukan kepada objek itu. Ini bermakna bahawa sebarang pengubahsuaian yang dibuat pada objek dalam fungsi akan menjejaskan objek asal. Ini kerana rujukan itu sendiri, bukan kandungan objek, diluluskan oleh nilai.
Mengubah suai Sifat Objek
Walau bagaimanapun, jika anda mengubah suai mana-mana sifat objek yang dihantar kepada sesuatu fungsi, perubahan tersebut akan berterusan di luar skop fungsi. Contohnya, memberikan nilai baharu pada harta atau menambah harta baharu akan menjejaskan objek asal.
Nilai Primitif Melewati Nilai
Berbeza dengan objek, primitif nilai (seperti rentetan, nombor dan boolean) diluluskan oleh nilai. Ini bermakna bahawa sebarang pengubahsuaian kepada nilai ini dalam fungsi tidak akan menjejaskan nilai asal.
Adakah Terdapat Cara untuk Mengawal Gelagat Hantaran?
Dalam JavaScript, terdapat tiada cara yang jelas untuk mengawal sama ada sesuatu itu diluluskan melalui nilai atau rujukan. Walau bagaimanapun, adalah penting untuk memahami tingkah laku lulus asas untuk memastikan pelaksanaan kod yang boleh diramal dan cekap.
Contoh
Contoh 1:
function modifyByRef(obj) { obj.value = "Modified"; } const obj = { value: "Original" }; modifyByRef(obj); console.log(obj.value); // "Modified"
Contoh 2:
function modifyPrimitive(value) { value = "Modified"; } let value = "Original"; modifyPrimitive(value); console.log(value); // "Original"
Amalan Terbaik untuk Mencipta Salinan Objek
Untuk mencipta salinan bebas sepenuhnya objek, anda boleh menggunakan Object.assign() atau operator spread (...) bersama-sama dengan pemusnahan.
Kesimpulan
Memahami gelagat lulus JavaScript adalah penting untuk berkesan bekerja dengan pembolehubah dan objek. Walaupun objek diluluskan oleh nilai (sebagai rujukan), pengubahsuaian harta dalam fungsi mempengaruhi objek asal. Nilai primitif, sebaliknya, benar-benar diluluskan oleh nilai. Keupayaan untuk mengenal pasti tingkah laku lulus memastikan ketepatan kod dan hasil yang boleh diramal.
Atas ialah kandungan terperinci Adakah JavaScript Lulus Pembolehubah mengikut Nilai atau Rujukan, dan Bagaimana Tingkah Laku Ini Boleh Diterangkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!