Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Mencipta Salinan Dalam Benar bagi Objek JavaScript?
Mengklon objek JavaScript ialah tugas penting dalam pelbagai senario pengaturcaraan. Walau bagaimanapun, mencipta salinan objek yang kekal tidak terjejas oleh perubahan yang dibuat kepada yang asal boleh menjadi mencabar kerana kerumitan sistem objek JavaScript.
Penugasan objek asli JavaScript operator (cth., x = y) hanya mencipta rujukan kepada objek asal. Perubahan yang dibuat kepada sama ada x atau y akan menjejaskan kedua-dua objek. Selain itu, menyalin objek yang diperoleh daripada objek JavaScript terbina dalam (cth., Tatasusunan, Tarikh) boleh memperkenalkan sifat yang tidak diingini.
Untuk mencipta salinan dalam objek JavaScript, pertimbangkan penyelesaian komprehensif berikut:
function clone(obj) { if (null == obj || "object" != typeof obj) return obj; var copy = obj.constructor(); for (var attr in obj) { if (obj.hasOwnProperty(attr)) copy[attr] = clone(obj[attr]); } return copy; }
Fungsi ini menggunakan pendekatan rekursif untuk melintasi sifat objek dan mencipta objek baharu dengan kejadian berasingan untuk setiap nilai harta. Ia mengendalikan kes jenis objek null, undefined dan pelbagai terbina dalam sambil mengecualikan sifat tidak terhitung dan tersembunyi.
Walaupun penyelesaian merangkumi kebanyakan senario, ia menganggap bahawa data objek membentuk struktur pokok, bermakna tiada rujukan bulat dalam objek. Selain itu, ia memerlukan pengetahuan tentang pembina objek untuk membuat instantiate objek yang diklon dengan betul.
Dalam pelayar moden, standard pengklonan berstruktur menyediakan cara yang lebih mantap dan cekap untuk buat salinan objek yang mendalam. Fungsi structuredClone() mengklon objek secara keseluruhannya, mengekalkan sifat tersembunyi dan rujukan bulat.
const clone = structuredClone(object);
Ingat, pengklonan objek boleh menjadi tugas yang rumit dan pertimbangkan batasan setiap pendekatan berdasarkan keperluan khusus permohonan anda.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Salinan Dalam Benar bagi Objek JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!