มีสองวิธีในการผสานคุณสมบัติของวัตถุจาวาสคริปต์แบบไดนามิก พวกเขาคือ
1) Object.assign()
Object.assign() เมธอดใช้เพื่อคัดลอกค่าของคุณสมบัติทั้งหมดจากออบเจ็กต์ต้นทางหนึ่งรายการขึ้นไปไปยังออบเจ็กต์เป้าหมาย มันจะส่งคืนวัตถุเป้าหมาย .
ตัวอย่าง-1
<html> <body> <script> var target = { a: "ram", b: "rahim" }; var source = { c: "akbar", d: "anthony" }; var returnedTarget = Object.assign(target, source); document.write(JSON.stringify(target)); document.write(JSON.stringify(returnedTarget)); </script> </body> </html>
ผลลัพธ์
{"a":"ram","b":"rahim","c":"akbar","d":"anthony"} {"a":"ram","b":"rahim","c":"akbar","d":"anthony"}
หากออบเจ็กต์มีคีย์เหมือนกัน ค่าของคีย์ของออบเจ็กต์ที่ปรากฏภายหลังในการแจกแจงจะถูกคัดลอก ตัวอย่างต่อไปนี้แสดงสถานการณ์เมื่อมีคีย์เดียวกันที่มีค่าต่างกัน
ตัวอย่าง-2
<html> <body> <script> var target = { a: "ram", b: "rahim" }; var source = { b: "akbar", d: "anthony" }; var returnedTarget = Object.assign(target, source); document.write(JSON.stringify(target)); document.write("</br>"); document.write(JSON.stringify(returnedTarget)); </script> </body> </html>
ผลลัพธ์
{"a":"ram","b":"akbar","d":"anthony"} {"a":"ram","b":"akbar","d":"anthony"}
2) การใช้ตัวดำเนินการการแพร่กระจาย
ตัวดำเนินการสเปรด อนุญาตให้ขยายนิพจน์ในตำแหน่งที่ต้องการองค์ประกอบ/ตัวแปร/อาร์กิวเมนต์หลายรายการ ส่วนใหญ่จะใช้ในอาร์เรย์ตัวแปรซึ่งคาดว่าจะมีหลายค่า เนื่องจากออบเจ็กต์จาวาสคริปต์เป็นเอนทิตีที่จับคู่ค่าคีย์ เราจึงสามารถรวมออบเจ็กต์เป็นหนึ่งเดียวได้โดยใช้ตัวดำเนินการกระจาย
ไวยากรณ์
var target = [...obj1, ...obj2, ...]
ตัวอย่าง
<html> <body> <script> var target = { a: "ram", b: "rahim" }; var source = { b: "akbar", d: "anthony" }; var returnedTarget = {...target, ...source} document.write(JSON.stringify(returnedTarget)); </script> </body> </html>
ผลลัพธ์
{"a":"ram","b":"akbar","d":"anthony"}