Rumah  >  Artikel  >  hujung hadapan web  >  Adakah penyahbinaan es6 salinan yang mendalam?

Adakah penyahbinaan es6 salinan yang mendalam?

WBOY
WBOYasal
2022-04-25 19:04:042465semak imbas

Penyahbinaan ES6 bukanlah salinan yang mendalam. Jika objek asal dekonstruksi ialah tatasusunan atau objek satu dimensi, maka pemusnahan ialah salinan dalam Jika objek asal dekonstruksi ialah tatasusunan atau objek berbilang dimensi, maka pemusnahan adalah salinan cetek salinan dalam untuk tatasusunan berbilang dimensi, penstrukturan tidak boleh Ia dianggap sebagai salinan dalam, tetapi hendaklah salinan cetek.

Adakah penyahbinaan es6 salinan yang mendalam?

Persekitaran pengendalian tutorial ini: sistem Windows 10, ECMAScript versi 6.0, komputer Dell G3.

Adakah es6 memusnahkan salinan yang mendalam? Tugasan pemusnahan yang dipanggil ialah penyelesaian yang menggunakan corak untuk mendapatkan semula data dengan cepat daripada struktur sasaran, contohnya:


Melalui pemusnahan, kita boleh mendapatkan semula data yang kita inginkan daripada tatasusunan dan objek dengan mudah. . Walau bagaimanapun, anda mungkin bertanya, apakah kaitan ini dengan salinan dalam dan salinan cetek? Adakah penyahbinaan es6 salinan yang mendalam?
Mari kita semak semula salinan dalam dan salinan cetek

Salinan cetek dan salinan dalam: Salinan cetek bermakna semasa proses penyalinan, bahagian semasa traversal adalah objek/array. taip Tuding ke alamat asal, manakala salinan dalam membuka sepenuhnya alamat memori baharu. Dalam erti kata lain,

salinan dalam: mengubah suai nilai pembolehubah baharu tidak akan menjejaskan nilai pembolehubah asal. Secara lalai, jenis data asas (nombor, rentetan, null, undefined, boolean) disalin dalam.
  • Salinan cetek: Mengubah suai nilai pembolehubah baharu akan menjejaskan nilai pembolehubah asal. Secara lalai, jenis rujukan (objek) adalah salinan cetek.
  • Jadi, dalam dekonstruksi, adakah ia salinan dalam atau salinan cetek?

Dalam kod di atas, kami menyahbina tatasusunan dan objek masing-masing, kemudian mengubah suai nilai pembolehubah yang dimusnahkan, dan kemudian mencetak pembolehubah dan tatasusunan asal dan objek masing-masing seperti berikut: Adakah penyahbinaan es6 salinan yang mendalam?

Kami mendapati bahawa data tatasusunan dan objek asal tidak berubah Adakah ini bermakna tugasan yang memusnahkan adalah salinan yang mendalam? ? Adakah penyahbinaan es6 salinan yang mendalam?
Mari kita ubah suai sedikit contoh Kodnya adalah seperti berikut:

Kami menambah atribut data baharu pada objek memusnahkan, kami Data data telah diubah suai, dan hasilnya adalah seperti berikut: Adakah penyahbinaan es6 salinan yang mendalam?

Kami mendapati bahawa perubahan data pembolehubah yang dinyahkonstruk menyebabkan perubahan data asal, iaitu, tugasan yang telah dimusnahkan masih merupakan salinan cetek. Adakah penyahbinaan es6 salinan yang mendalam?
Untuk meringkaskan:

Memusnahkan tugasan, jika objek asal yang dinyahbina ialah tatasusunan atau objek satu dimensi, intipatinya adalah untuk memberikan tanda sama kepada jenis data asas, maka ia adalah Salinan dalam;
Jika ia adalah tatasusunan atau objek berbilang dimensi, intipatinya adalah untuk memberikan tanda sama kepada data jenis rujukan, maka ia adalah salinan cetek; ialah salinan cetek (kerana ia tidak berfungsi untuk Tatasusunan berbilang dimensi atau objek mencapai fungsi salinan dalam); >bahagian hadapan web

]

Atas ialah kandungan terperinci Adakah penyahbinaan es6 salinan yang mendalam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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