Rumah > Artikel > hujung hadapan web > Object Spread vs. Object.assign(): Bilakah Anda Harus Pilih Yang Mana?
Objek Spread lwn. Object.assign: Prestasi dan Pertimbangan Fungsi
Apabila bekerja dengan objek dalam JavaScript, dua kaedah yang biasa digunakan untuk menggabungkan dan memanipulasinya ialah sintaks penyebaran objek ({...}) dan kaedah Object.assign(). Memahami kelebihan dan kelemahan setiap pendekatan adalah penting untuk pembangunan kod yang cekap dan berkesan.
Sintaks Penyebaran Objek ( {...} )
Kelebihan:
Kelemahan:
Kaedah Object.assign()
Kelebihan:
Kelemahan:
Pertimbangkan contoh berikut:
Menetapkan Pilihan Lalai
<code class="javascript">options = {...optionsDefault, ...options}; // Object spread syntax</code>
<code class="javascript">options = Object.assign({}, optionsDefault, options); // Object.assign() method</code>
Kedua-dua kaedah mencapai hasil yang sama iaitu menggabungkan objek optionsDefault dan pilihan. Walau bagaimanapun, sintaks penyebaran menawarkan pendekatan yang lebih ringkas.
Penciptaan Objek Dinamik
<code class="javascript">var sources = [{a: "A"}, {b: "B"}, {c: "C"}]; // Using Object spread syntax options = {...sources}; // Using Object.assign() method and apply() options = Object.assign.apply(Object, [{}].concat(sources)); // Using Object.assign() method and rest spread options = Object.assign({}, ...sources);</code>
Kaedah Object.assign() membenarkan penciptaan objek dinamik berdasarkan bilangan objek sumber sewenang-wenangnya. Sintaks hamparan yang digunakan dalam contoh kedua dan ketiga meruntuhkan tatasusunan sumber ke dalam senarai argumen, menjadikannya pilihan yang lebih fleksibel.
Pertimbangan Prestasi
Penanda aras prestasi menunjukkan bahawa Object.assign() biasanya lebih pantas daripada sintaks penyebaran objek. Walau bagaimanapun, jurang prestasi mungkin berbeza-beza bergantung pada persekitaran dan penyemak imbas.
Kesimpulan
Apabila memilih antara sintaks penyebaran objek dan Object.assign(), pertimbangkan faktor berikut :
Atas ialah kandungan terperinci Object Spread vs. Object.assign(): Bilakah Anda Harus Pilih Yang Mana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!