mata teras
...
. Pengendali berkembang lebih moden dan ringkas, manakala Object.assign()
lebih serasi dan sesuai untuk persekitaran yang lebih tua. Object.assign()
Object.assign()
deepMergeObjects
. JSON.parse(JSON.stringify())
) (digunakan untuk menggabungkan sifat pelbagai objek) dan kaedah ...
(digunakan untuk menyalin sifat satu objek ke yang lain) adalah alat penting untuk menyelesaikan tugas -tugas ini. Walau bagaimanapun, pemahaman kapan dan bagaimana menggunakannya adalah penting untuk memanipulasi objek dengan cekap. Dalam artikel ini, saya akan memperkenalkan beberapa aplikasi praktikal kaedah ini, kelebihan dan kekurangan mereka, dan konsep yang sangat menyalin dan kemudian menggabungkan objek bersarang. Object.assign()
katalog
...
Object.assign()
1
Expand Operator (...
2
...
{ ...object1, ...object2 }
adalah kaedah lain yang digunakan dalam JavaScript untuk menggabungkan objek. Sintaksinya adalah
const defaults = { color: 'red', size: 'medium' }; const userSettings = { color: 'blue' }; const combinedSettings = { ...defaults, ...userSettings }; console.log(combinedSettings); // 输出:{ color: 'blue', size: 'medium' }
Object.assign()
perangkap dan langkah berjaga -jaga Object.assign()
Object.assign(target, source1, source2, ...)
Object.assign()
Berikut adalah perangkap dan masalah yang mungkin dihadapi apabila menggabungkan objek menggunakan pengendali Expand dan kaedah
const defaults = { color: 'red', size: 'medium' }; const userSettings = { color: 'blue' }; const combinedSettings = Object.assign({}, defaults, userSettings); console.log(combinedSettings); // 输出:{ color: 'blue', size: 'medium' }
kedua -duanya melakukan salinan cetek apabila menggabungkan objek. Ini bermakna objek bersarang masih merujuk kepada objek asal. Mengubah objek bersarang dalam objek yang digabungkan boleh menjejaskan objek asal, yang mungkin membawa kepada kesan sampingan yang tidak dijangka. Object.assign()
2
Object.assign()
3
4
Object.assign()
memperluaskan pengendali dan
Jika anda perlu menggabungkan objek besar atau melakukan operasi gabungan dengan kerap, menggunakan Object.assign()
atau mengembangkan pengendali boleh menyebabkan masalah prestasi kerana objek baru dibuat semasa proses penggabungan.
Salin atribut dari prototaip objek sumber ke objek sasaran, yang mungkin membawa kepada tingkah laku yang tidak dijangka jika prototaip objek sumber mempunyai sifat yang bertentangan dengan sifat objek sasaran. Sebaliknya, pengendali pengembangan tidak menyalin sifat prototaip. Object.assign()
Object.assign()
Kaedah mana yang hendak dipilih?
Kedua -dua Object.assign()
lebih serasi dengan persekitaran JavaScript yang lebih lama. untuk menentukan kaedah mana yang hendak digunakan, pertimbangkan:
Object.assign()
Jika persekitaran anda menyokong pengendali pengembangan (seperti versi ECMAScript terkini), gunakannya kerana ia adalah sintaks. Object.assign()
.
Object.assign()
gabungan dalam: Salinan dalam dan gabungan objek Adalah penting untuk memahami dan mengelakkannya sebelum menggabungkan objek.
Contoh berikut menunjukkan cara mengedit objek bersarang objek salinan mempengaruhi objek asal:
const defaults = { color: 'red', size: 'medium' }; const userSettings = { color: 'blue' }; const combinedSettings = { ...defaults, ...userSettings }; console.log(combinedSettings); // 输出:{ color: 'blue', size: 'medium' }
kod ini menunjukkan bahawa sifat shallowCopyPlanet
objek asal planet
telah diubah (anda mungkin tidak mahu ini). info.moons
menerima bilangan objek input, mewujudkan salinan kedalaman mereka menggunakan teknik deepMergeObjects
, dan kemudian menggunakan operasi pengembangan dalam kaedah JSON.parse(JSON.stringify())
untuk memadankannya. Objek yang digabungkan akan mengandungi salinan kedalaman sifat dari objek input. reduce()
const defaults = { color: 'red', size: 'medium' }; const userSettings = { color: 'blue' }; const combinedSettings = Object.assign({}, defaults, userSettings); console.log(combinedSettings); // 输出:{ color: 'blue', size: 'medium' }
Kesimpulan
Terima kasih kerana membaca! Saya harap artikel ini membantu anda mendapatkan gambaran mengenai penggabungan objek dalam JavaScript, bukan hanya pengenalan yang mudah. Mampu menggabungkan objek harus menggabungkan dengan baik dengan kemahiran JavaScript anda dan melanjutkan keupayaan pengekodan anda. Jika anda mempunyai sebarang pertanyaan atau komen, sila sertai Forum Komuniti SitePoint.
Soalan Lazim untuk menggabungkan objek dalam JavaScript
Apakah konsep menggabungkan objek dalam JavaScript?Bagaimana menggabungkan objek dalam JavaScript menggunakan pengendali pengembangan?
) dalam JavaScript adalah cara yang moden dan efisien untuk menggabungkan objek. Ia membolehkan pengembangan objek yang boleh dimakan seperti ekspresi array atau rentetan untuk digunakan di mana ia dijangka menjadi sifar atau lebih parameter atau elemen. Berikut adalah contoh cara menggunakannya: ...
const planet = { name: 'Earth', emoji: '?', info: { type: 'terrestrial', moons: 1 } }; // 使用展开运算符进行浅拷贝 const shallowCopyPlanet = { ...planet }; // 修改浅拷贝中的嵌套对象 shallowCopyPlanet.info.moons = 2; console.log('原始行星:', planet.info.moons); // 原始行星:2 console.log('行星的浅拷贝:', shallowCopyPlanet.info.moons); // 行星的浅拷贝:2
Object.assign()
Kaedah digunakan untuk menyalin semua nilai yang boleh dibaca satu atau lebih objek sumber ke objek sasaran. Ia akan mengembalikan objek sasaran. Ini adalah cara yang sangat berguna untuk menggabungkan objek kerana ia membolehkan anda menggabungkan pelbagai objek sumber ke dalam satu objek sasaran. Walau bagaimanapun, perlu diperhatikan bahawa jika harta yang sama didapati dalam pelbagai objek, nilai objek terakhir dengan harta itu akan mengatasi nilai sebelumnya. Object.assign()
Ya, anda boleh menggabungkan objek bersarang di JavaScript. Walau bagaimanapun, proses ini sedikit lebih rumit kerana anda perlu memastikan bahawa objek bersarang digabungkan dengan betul, bukan hanya sifat peringkat atas. Ini sering dipanggil gabungan dalam. Object.assign()
dan pengendali pengembangan tidak melakukan gabungan mendalam secara lalai. Untuk melakukan ini, anda perlu melaksanakan fungsi tersuai atau menggunakan perpustakaan seperti Lodash.
Apabila menggabungkan objek dalam JavaScript, jika sifat pendua wujud, nilai objek terakhir akan mengatasi nilai sebelumnya. Ini kerana apabila menggabungkan objek, ia melintasi sifat objek sumber dan menyerahkannya ke objek sasaran. Jika atribut sudah wujud pada objek sasaran, nilainya akan digantikan dengan nilai baru.
Ya, tatasusunan boleh digabungkan dalam JavaScript menggunakan kaedah yang sama sebagai objek. Memperluas pengendali adalah cara biasa untuk menggabungkan tatasusunan. Berikut adalah contoh:
const defaults = { color: 'red', size: 'medium' }; const userSettings = { color: 'blue' }; const combinedSettings = { ...defaults, ...userSettings }; console.log(combinedSettings); // 输出:{ color: 'blue', size: 'medium' }
dan Object.assign()
membuat objek baru apabila digabungkan, meninggalkan objek asal tidak berubah. Ini adalah ciri utama kaedah ini kerana ia menggalakkan Invariance, konsep teras dalam pengaturcaraan berfungsi di mana data tidak pernah berubah.
Ya, anda boleh menggabungkan objek dengan jenis data yang berbeza dalam JavaScript. Objek yang digabungkan akan mengandungi semua sifat dan kaedah objek asal tanpa mengira jenis datanya. Walau bagaimanapun, jika terdapat sifat pendua dengan jenis data yang berbeza, nilai objek terakhir akan menimpa nilai sebelumnya.
Menggabungkan objek JavaScript boleh memberi kesan prestasi, terutamanya apabila berurusan dengan objek besar. Kerumitan masa pengendali pengembangan dan kaedah Object.assign()
adalah O (n), di mana n ialah jumlah sifat dalam objek sumber. Oleh itu, apabila memutuskan untuk menggabungkan objek, adalah penting untuk mempertimbangkan saiz objek.
Ya, terdapat beberapa perpustakaan yang dapat membantu menggabungkan objek dalam JavaScript. Lodash adalah perpustakaan popular yang menyediakan pelbagai fungsi utiliti untuk memanipulasi objek dan tatasusunan, termasuk fungsi gabungan untuk objek penggabungan yang mendalam. Perpustakaan lain adalah jQuery, yang menyediakan kaedah $.extend()
untuk menggabungkan objek.
Atas ialah kandungan terperinci Cara menggabungkan objek dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!