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

Object.assign () ใน JavaScript?


Object.assign()

วิธีนี้ใช้เพื่อคัดลอกออบเจ็กต์ต้นทางหนึ่งรายการขึ้นไปไปยังออบเจ็กต์เป้าหมาย มันเรียกใช้ getters และ setters เนื่องจากใช้ทั้ง 'get' บนแหล่งที่มาและ 'Set' ที่เป้าหมาย ส่งคืนวัตถุเป้าหมายที่มีคุณสมบัติและค่าที่คัดลอกมาจากวัตถุเป้าหมาย เมธอดนี้ไม่ส่งค่าต้นทางที่เป็นโมฆะหรือไม่ได้กำหนด

ไวยากรณ์

Object.assign(target, ...source objects);

ต้องใช้ออบเจกต์ต้นทาง และวัตถุเป้าหมายเป็นพารามิเตอร์และผลักวัตถุต้นทางเข้าไปในวัตถุเป้าหมายและแสดงวัตถุเป้าหมาย

ตัวอย่าง-1

ในตัวอย่างต่อไปนี้ คุณสมบัติจากออบเจ็กต์ต้นทาง "obj1 "," obj2 " และ "obj3 " ถูกผลักเข้าไปในวัตถุเป้าหมาย "obj " และ วัตถุเป้าหมาย ถูกส่งกลับเป็นผลลัพธ์

<html>
<body>
<script>
   var obj1 = { a: 10, b:20 };
   var obj2 = { c: 30, d:40 };
   var obj3 = { e: 50 };
   var obj = Object.assign({}, obj1, obj2, obj3);
   document.write(JSON.stringify(obj));
</script>
</body>
</html>

ผลลัพธ์

{"a":10,"b":20,"c":30,"d":40,"e":50}


ตัวอย่าง-2

ในตัวอย่างต่อไปนี้ มี หลายอินสแตนซ์ ของ คุณสมบัติ ของวัตถุ ในกรณีนี้เมธอด Object.assign() ใช้ค่าที่กำหนดล่าสุดของคุณสมบัติ ตัวอย่างเช่น ในทั้ง 3 อ็อบเจ็กต์ "obj1 "," obj2 " และ "obj3 คุณสมบัติ ' ' เป็นค่าทั่วไปและค่าที่กำหนด เช่น 1,3 และ 0 ตามลำดับ ค่าของคุณสมบัติ 'c' ใน obj3 จะแทนที่ค่าอื่นๆ ที่กำหนดไว้ก่อนหน้านี้ 1 และ 3 . ดังนั้นถ้าเราดูที่ผลลัพธ์ คุณสมบัติ ' ' ถูกกำหนดด้วยค่า 0 .

<html>
<body>
<script>
   var obj1 = { a: 10, b:20, c:1 };
   var obj2 = { b: 30, d:10, c:3 };
   var obj3 = { e: 60, d:70, c:0 };
   var obj = Object.assign({}, obj1, obj2, obj3);
   document.write(JSON.stringify(obj));
</script>
</body>
</html>

ผลลัพธ์

{"a":10,"b":30,"c":0,"d":70,"e":60}