Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

จะรวมคุณสมบัติของสอง JavaScript Objects แบบไดนามิกได้อย่างไร?


มีสองวิธีในการผสานคุณสมบัติของวัตถุจาวาสคริปต์แบบไดนามิก พวกเขาคือ

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"}