Object.assign()
เมธอดนี้ใช้คัดลอก Source Objects หนึ่งหรือหลายตัวไปยัง Target Object เรียก Getters และ Setters เนื่องจากใช้ 'get' บน Source และ 'set' บน Target คืนค่า Target Object ที่มี Properties และ Values คัดลอกจาก Source Objects เมธอดนี้ไม่ Throw Error เมื่อ Source เป็น Null หรือ Undefined
Syntax
Object.assign(target, ...source objects);
รับ Source Objects และ Target Object เป็นพารามิเตอร์ นำ Source Objects ไปรวมใน Target Object และคืนค่า Target Object
ตัวอย่างที่ 1
ในตัวอย่างนี้ Properties จาก Source Objects "obj1", "obj2", "obj3" ถูกนำเข้า Target Object "obj" และคืนค่า Target Object เป็น Output
<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
ในตัวอย่างนี้ มี Multiple Instances ของ Properties บางอย่าง Object.assign() จะใช้ค่าที่ Assign สุดท้ายของ Property เช่น Property 'c' ซ้ำใน obj1, obj2, obj3 ค่า 1, 3, 0 ตามลำดับ ค่าใน obj3 (0) จะ Override ค่าก่อนหน้า ดังนั้น Output Property 'c' จะเป็น 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}