Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

วิธี Deep Copy Object ใน JavaScript

Deep Copy ของ Object จะ Duplicate ทุก Object ที่พบภายใน Object ที่ต้องการ Copy Copy และ Original จะไม่ Share อะไรเลย จึงเป็น Copy จริงของ Original

วิธีง่ายที่สุดคือแปลง Object เป็น JSON String แล้วแปลงกลับเป็น JS Object แต่วิธีนี้ไม่ Copy Methods ได้

ตัวอย่าง

let obj = {    foo: 1,    bar: { baz: 'test' } } let newObj = JSON.parse(JSON.stringify(obj)); obj.bar.baz = 20; console.log(obj); console.log(newObj);

ผลลัพธ์

{ foo: 1, bar: { baz: 20 } } { foo: 1, bar: { baz: 'test' } } 

newObj ไม่เปลี่ยนเมื่อ Update Original Obj แสดงว่า Deep Copy สำเร็จ