มีสองวิธีในการผสานคุณสมบัติของวัตถุจาวาสคริปต์แบบไดนามิก พวกเขาคือ
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"}