Rumah >hujung hadapan web >tutorial js >Rujukan Pass-by-Value dalam JavaScript: Bagaimanakah Objek dan Primitif Berkelakuan dalam Panggilan Fungsi?
JavaScript Pass-by Rujukan lwn. Pass-by Value
JavaScript menggunakan kedua-dua pass-by-value dan pass-by-reference mechanism . Primitif, seperti nombor dan rentetan, diluluskan oleh nilai, bermakna salinan primitif dicipta dalam fungsi yang dipanggil. Sebaliknya, bukan primitif, terutamanya objek, diluluskan melalui rujukan.
Dalam kes objek, rujukan kepada objek dihantar dan bukannya salinan. Ini bermakna mengubah suai pembolehubah rujukan dalam fungsi yang dipanggil tidak akan menjejaskan rujukan dalam pemanggil, seperti yang ditunjukkan dalam contoh yang disediakan:
var a = { key: 'value' }; replace(a); // a still holds its original value update(a); // a's contents change
Kekeliruan dengan Fungsi segi empat tepat
Contoh dalam soalan termasuk segi empat tepat fungsi bersarang dengan parameter saya. Parameter ini pada mulanya tidak ditentukan, tetapi ditakrifkan dalam fungsi. Sebab untuk persediaan ini adalah untuk menyediakan cara untuk berkongsi data antara fungsi segi empat tepat dan fungsi kawasan dalamannya.
Walaupun parameter saya pada mulanya tidak ditakrifkan dalam fungsi segi empat tepat, ia adalah rujukan objek yang diluluskan oleh rujukan . Oleh itu, apabila ia ditetapkan dalam fungsi segi empat tepat, ia mencipta rujukan baharu kepada objek yang boleh diubah suai dalam kedua-dua fungsi segi empat tepat dan kawasan, walaupun fungsi kawasan tidak menerima parameter saya secara langsung.
Atas ialah kandungan terperinci Rujukan Pass-by-Value dalam JavaScript: Bagaimanakah Objek dan Primitif Berkelakuan dalam Panggilan Fungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!