Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mencipta Salinan Dalam Benar bagi Objek JavaScript?

Bagaimana untuk Mencipta Salinan Dalam Benar bagi Objek JavaScript?

Patricia Arquette
Lepaskan: 2024-12-26 02:03:10
asal
819 orang telah melayarinya

How to Create a True Deep Copy of a JavaScript Object?

Cara Mengklon Objek JavaScript Dengan Betul

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.

Perangkap Kaedah Penyalinan Asli

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.

Penyelesaian Pengklonan Komprehensif

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;
}
Salin selepas log masuk

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.

Kes dan Andaian Tepi

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.

Pengklonan Berstruktur (Kemas Kini ES2022)

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);
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan