Rumah >hujung hadapan web >tutorial js >Mengapa Salinan Tatasusunan JavaScript Berubah Apabila Perubahan Asal?
Mengapa Menukar Tatasusunan dalam Salinan Kesan JavaScript?
Dalam JavaScript, tatasusunan ialah objek dan pembolehubah memegang rujukan kepada objek ini dan bukannya objek itu sendiri. Warisan ini boleh membawa kepada tingkah laku yang tidak dijangka apabila memberikan nilai baharu kepada tatasusunan.
Pertimbangkan contoh:
// Declare an array and its copy var myArray = ['a', 'b', 'c']; var copyOfMyArray = myArray; // Modify the copy of the array copyOfMyArray.splice(0, 1); // Display the values alert(myArray); // ['b', 'c'] alert(copyOfMyArray); // ['b', 'c']
Dengan memanipulasi copyOfMyArray, kami telah mengubah suai myArray secara tidak sengaja. Ini kerana pembolehubah seperti myArray dan copyOfMyArray menghala ke objek tatasusunan asas yang sama.
Arrays vs. Numbers
Sebaliknya, apabila bekerja dengan nombor seperti myNumber dan copyOfMyNumber, setiap pembolehubah memegang salinan nilai itu sendiri. Mengubah suai satu tidak menjejaskan yang lain.
var myNumber = 5; var copyOfMyNumber = myNumber; // Decrement the copy of the number copyOfMyNumber--; // Display the values alert(myNumber); // 5 alert(copyOfMyNumber); // 4
Konsekuensi dan Penyelesaian
Memahami tingkah laku ini adalah penting untuk manipulasi objek yang betul. Jika anda benar-benar memerlukan salinan tatasusunan yang berbeza, gunakan kaedah hirisan untuk mencipta salinan cetek:
var copyOfMyArray = myArray.slice(0);
Walau bagaimanapun, perlu diperhatikan bahawa salinan cetek ini hanya menduplikasi rujukan tatasusunan kepada elemennya. Sebarang objek dalaman masih akan merujuk kepada kejadian asal yang sama.
Atas ialah kandungan terperinci Mengapa Salinan Tatasusunan JavaScript Berubah Apabila Perubahan Asal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!