Cara melaksanakan salinan dalam: 1. Gunakan pernyataan "Object.assign({},obj)" untuk melaksanakan; 2. Gunakan pernyataan "JSON.parse(JSON.stringify(obj))" untuk laksana; 3. Gunakan pernyataan "$.extend(true,[],arr)" untuk mencapai ini.
Persekitaran pengendalian tutorial ini: sistem Windows 7, ECMAScript versi 6, komputer Dell G3.
Apa itu salinan dalam
Salinan dalam adalah relatif kepada salinan cetek. Perbezaan utama ditunjukkan dalam jenis rujukan salin hanya menyalin alamat rujukan dalam tindanan, jadi apabila anda mengubah suai nilai yang baru disalin, objek yang disalin juga akan diubah suai oleh anda manakala salinan dalam akan Mencipta ruang untuk objek baharu dalam ingatan timbunan, jadi objek yang disalin tidak akan diubah suai tanpa sebab.
Cara melaksanakan salinan dalam dalam es6
Kaedah 1: Gunakan Object.assign
Object .assign melakukan salinan dalam objek secara lalai, tetapi apa yang perlu kita ambil perhatian ialah ia hanya melakukan salinan dalam lapisan paling luar Iaitu, apabila terdapat objek bersarang dalam objek, objek bersarang masih melakukan a salinan cetek. disalin secara mendalam)
function cloneDeepAssign(obj){ return Object.assign({},obj) }
menyasarkan sifat terhitung objek itu sendiri, dan tidak mempunyai kesan ke atas sifat tidak terhitung; berurusan dengan objek tunggal pada tahap, kita boleh menganggap ini Kaedah ini mudah dan cepat. (Saya mencubanya, tetapi undefined tidak disokong sama ada) ...
slice
concat
Kaedah 2: Gunakan J
Object.assign
Tetapi apa yang perlu kita perhatikan ialah: SON
dan
;function cloneDeepJson(obj){ return JSON.parse(JSON.stringify(obj)) }
tidak boleh disalin kerana rentetan format
tidak menyokong, undefined
dan jenis terbina dalam yang lain akan hilang semasa penyirian; symbol
Function
JSON
Function
Map
Set
Jelas sekali, kelemahan terbesar ialah kita perlu memperkenalkan perpustakaan jQuery, jadi ia tidak biasa digunakan; RegExp
】Date
Atas ialah kandungan terperinci Apakah beberapa kaedah pelaksanaan salinan dalam es6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!