Apakah Anda memperhatikan dalam contoh di atas kita tidak hanya menyalin objek, tetapi juga array bersarang, dan bahkan objek Tanggal? Show
Dan semua bekerja persis seperti yang diharapkan Itu benar,
Jadi misalnya, kegilaan ini bahkan akan berhasil seperti yang diharapkan Mengapa tidak menyebarkan objek saja?Penting untuk dicatat bahwa kita berbicara tentang salinan yang dalam. Jika Anda hanya perlu melakukan salinan dangkal, alias salinan yang tidak menyalin objek atau array bersarang, maka kita cukup melakukan penyebaran objek Atau bahkan salah satunya, jika Anda mau Tapi begitu kami memiliki item bersarang, kami mengalami masalah Seperti yang Anda lihat, kami tidak membuat salinan lengkap dari objek ini Tanggal dan larik bersarang masih merupakan referensi bersama di antara keduanya, yang dapat menyebabkan masalah besar bagi kami jika kami ingin mengeditnya karena mengira kami hanya memperbarui objek acara kalender yang disalin Mengapa tidak structuredClone1 ?Ah ya, trik ini. Ini sebenarnya bagus, dan secara mengejutkan berkinerja, tetapi memiliki beberapa kekurangan yang Ambil ini sebagai contoh Jika kita mencatat Bukan itu yang kami inginkan. Ini terjadi karena
Misalnya, jika kita menyalin contoh Ew Oh ya, dan kami harus menghapus referensi melingkar yang awalnya kami miliki untuk ini, karena Jadi, meskipun metode ini bagus jika persyaratan kami sesuai dengan kemampuannya, ada banyak hal yang dapat kami lakukan dengan Sampai saat ini, fungsi Dan ini, pada kenyataannya, berfungsi seperti yang diharapkan Tapi, hanya ada satu peringatan di sini. Menurut ekstensi Biaya Impor di IDE saya, yang mencetak biaya kb dari apa pun yang saya impor, fungsi yang satu ini masuk secara keseluruhan 17. 4kb diperkecil (5. 3kb di-gzip) Dan itu mengasumsikan Anda hanya mengimpor fungsi itu. Jika Anda malah mengimpor dengan cara yang lebih umum, tanpa menyadari bahwa pengocokan pohon tidak selalu berfungsi seperti yang Anda harapkan, Anda dapat secara tidak sengaja mengimpor hingga 25kb hanya untuk fungsi yang satu ini 😱 Meskipun itu tidak akan menjadi akhir dunia bagi siapa pun, itu tidak diperlukan dalam kasus kami, tidak ketika browser sudah memiliki Apa yang structuredClone tidak bisa digandakanFungsi tidak dapat dikloningMereka akan melontarkan pengecualian Juga melontarkan pengecualian Deskriptor properti, setter, dan getterSerta fitur mirip metadata yang serupa tidak dikloning Misalnya, dengan pengambil, nilai yang dihasilkan digandakan, tetapi bukan fungsi pengambil itu sendiri (atau metadata properti lainnya) Rantai prototipe tidak berjalan atau digandakan. Jadi jika Anda mengkloning instance dari Daftar lengkap jenis yang didukungSederhananya, apa pun yang tidak ada dalam daftar di bawah ini tidak dapat dikloning
Dukungan browser dan runtimeDan inilah bagian terbaiknya - Catat saja peringatan dengan Web Worker yang memiliki dukungan lebih terbatas Sudah lama datang, tapi kami akhirnya sekarang memiliki Hai. Saya Steve, CEO Builder. io Kami membuat cara drag + drop dengan komponen Anda untuk membuat halaman dan konten CMS lainnya di situs atau aplikasi Anda, secara visual Anda dapat membaca selengkapnya tentang bagaimana hal ini dapat meningkatkan alur kerja Anda di sini Anda mungkin menganggapnya menarik atau berguna Bangun secara visual dengan komponen AndaPembangun. io adalah CMS Visual yang memungkinkan Anda menarik dan melepas untuk membuat konten di situs Anda secara visual, menggunakan komponen Anda Apa itu klon dalam?Penyalinan/kloning mendalam adalah proses pembuatan objek duplikat independen yang tepat dalam memori heap dan secara manual menetapkan nilai objek kedua tempat nilai seharusnya disalin is called deep cloning.
Apa itu klon dangkal vs klon dalam?Dalam salinan Shallow, salinan objek asli disimpan dan hanya alamat referensi yang akhirnya disalin. Dalam Deep copy, salinan objek asli dan salinan berulang keduanya disimpan .
Apakah klon () salinan dalam atau salinan dangkal?clone() memang salinan dangkal . Namun, itu dirancang untuk melempar CloneNotSupportedException kecuali objek Anda mengimplementasikan Cloneable. Dan saat Anda mengimplementasikan Cloneable , Anda harus mengganti clone() untuk membuatnya melakukan penyalinan yang dalam, dengan memanggil clone() pada semua bidang yang dapat digandakan sendiri.
Bagaimana Anda mengkloning objek dalam JavaScript secara mendalam?# 3 Cara Mengkloning Objek di JavaScript . Objek adalah Jenis Referensi Menggunakan Sebaran Menggunakan Objek. menetapkan Menggunakan JSON. Lodash DeepClone vs JSON Klon Dangkal vs Klon Dalam. Salinan dangkal. Salinan Dalam Pertunjukan Obyek. tetapkan vs Sebarkan. Deep Clone menggunakan Perpustakaan Eksternal. Lebih Banyak Cara menggunakan JavaScript |