Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Apakah beberapa kaedah pelaksanaan salinan dalam es6?

Apakah beberapa kaedah pelaksanaan salinan dalam es6?

青灯夜游
Lepaskan: 2022-03-23 12:06:52
asal
6984 orang telah melayarinya

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.

Apakah beberapa kaedah pelaksanaan salinan dalam es6?

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)
}
Salin selepas log masuk
Pada masa yang sama, kita tahu bahawa

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) ...sliceconcatKaedah 2: Gunakan J

Object.assign

Ini adalah salinan dalam yang paling biasa disebut salinan dalam boleh diselesaikan menggunakan JSON Intipatinya ialah JSON akan membina memori baharu dengan sendirinya untuk menyimpan objek baharu.

Tetapi apa yang perlu kita perhatikan ialah: SON

akan mengabaikan

dan

;
function cloneDeepJson(obj){
  return JSON.parse(JSON.stringify(obj))
}
Salin selepas log masuk

tidak boleh disalin kerana rentetan format

tidak menyokong
    dan akan dipadamkan secara automatik semasa bersiri; > >,
  • ,

    , undefined dan jenis terbina dalam yang lain akan hilang semasa penyirian; symbol

  • tidak menyokong penyalinan objek rujukan bulat; Secara kasar boleh difahami sebagai nilai atribut tertentu dalam objek itu sendiri)

    FunctionJSONFunction

    Kaedah 3: Gunakan jQuery
  • Map SetJelas sekali, kelemahan terbesar ialah kita perlu memperkenalkan perpustakaan jQuery, jadi ia tidak biasa digunakan; RegExpDate

Atas ialah kandungan terperinci Apakah beberapa kaedah pelaksanaan salinan dalam es6?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
es6
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan