Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

Javascript에서 객체를 어떻게 딥 복사하시겠습니까?

<시간/>

객체의 전체 복사는 복사하려는 객체 내에서 만나는 모든 객체를 복제합니다. 복사본과 원본 개체는 아무 것도 공유하지 않으므로 원본의 복사본이 됩니다.

가장 쉬운 방법은 객체를 JSON 문자열로 변환하고 다시 JS 객체로 변환하는 것입니다. 그러나 이 방법은 메서드 복사를 허용하지 않습니다.

예시

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는 원본 obj로 업데이트해도 변경되지 않으므로 전체 복사에 성공했습니다.