Rumah >hujung hadapan web >tutorial js >Pass-by-Value vs Pass-by-Reference dalam JavaScript: Bagaimana Ia Mempengaruhi Argumen Fungsi?

Pass-by-Value vs Pass-by-Reference dalam JavaScript: Bagaimana Ia Mempengaruhi Argumen Fungsi?

Barbara Streisand
Barbara Streisandasal
2024-12-22 15:21:13910semak imbas

Pass-by-Value vs. Pass-by-Reference in JavaScript: How Do They Affect Function Arguments?

Memahami Pass-by-Value dan Pass-by-Reference dalam JavaScript

Apabila menghantar nilai atau objek kepada fungsi dalam JavaScript, ia adalah penting untuk memahami konsep pass-by-reference dan pass-by-value. Ringkasnya, primitif (seperti nombor, rentetan, boolean) dihantar mengikut nilai, bermakna sebarang perubahan yang dibuat dalam fungsi tidak menjejaskan nilai asal di luar fungsi.

Walau bagaimanapun, objek diluluskan oleh "salinan rujukan." Ini bermakna apabila objek dihantar ke fungsi, rujukan baharu dibuat kepada objek asal. Sebarang perubahan yang dibuat pada kandungan objek dalam fungsi akan menjejaskan objek asal.

Kajian Kes: Contoh Fungsi Segi Empat

Dalam contoh yang disediakan, kita mempunyai fungsi segi empat tepat yang mengambil objek konfigurasi dan objek pilihan saya. Secara dalaman, ia mentakrifkan objek saya tempatan jika ia tidak wujud dalam hujah. Objek saya ini menyimpan panjang dan lebar segi empat tepat.

Fungsi luas dalam fungsi segi empat tepat mengira luas segi empat tepat menggunakan panjang dan lebar yang disimpan dalam objek saya.

Apabila kita gunakan fungsi segi empat tepat dan tetapkan objek yang dikembalikan kepada myRec, kami mencipta salinan rujukan kepada objek saya. Sebarang perubahan yang dibuat pada kandungan saya (cth., mengemas kini my.l dan my.w) dalam fungsi segi empat tepat akan ditunjukkan dalam kedua-dua my dan myRec kerana ia merujuk kepada objek asas yang sama.

Walau bagaimanapun, jika kami cuba menulis ganti rujukan kepada saya dalam fungsi segi empat tepat, ia tidak akan menjejaskan salinan rujukan yang dipegang oleh pemanggil (myRec). Ini kerana rujukan diluluskan mengikut nilai, bermakna memberikan objek baharu kepada saya dalam fungsi hanya mengubah suai rujukan setempat, bukan rujukan yang dipegang oleh pemanggil.

Atas ialah kandungan terperinci Pass-by-Value vs Pass-by-Reference dalam JavaScript: Bagaimana Ia Mempengaruhi Argumen 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