Jadi saya mempunyai kod JavaScript ini, apakah perbezaan antara Talian A dan Talian B
const arr1 = [1,2,3,4,5] const arr2 = [...arr1]; // Baris A const arr2 = arr1; // Baris B
Jadi saya ingin tahu sama ada kedua-dua kaedah tugasan ini adalah sama atau terdapat beberapa perbezaan
Mereka berbeza.
LINE A, salin (salinan cetek) setiap elemen tatasusunan ke dalam
arr2
.LINE B, tetapkan rujukan
ialah tatasusunan yang sama. Contoharr1
kepadaarr1
的引用赋值给arr2
。基本上,arr1
和arr2
. Pada asasnya,arr1
danSalinan cetek Salinan cetek hanya menyalin item peringkat pertama. Sebagai contoh, jika tatasusunan mengandungi tatasusunan lain, tatasusunan dalam akan disalin, tetapi unsur tatasusunan dalam tidak disalin. Oleh itu, elemen dalam tidak disalin. Lihat contoh kod di bawah: