zero-base 프론트엔드 스쿨 ⛪️

JSON 함수를 통한 Deep Copy

엄성준 2022. 12. 18. 23:30

먼저 user 객체를 생성합니다.

 

let user = {
    name: "sungjun",
    age: 50,
    size: {
        height: 200,
        weight: 70,
    }
};

 

다음으로 deepCopy 객체를 생성한 후 JSON.stringify() 함수를 통해 user객체를 문자열로 변환합니다. 그 후 JSON.parse() 함수를 통해 문자열 user를 다시 object 형태로 변환해줍니다. (정말 간편한 방법인 것 같습니다.)

 

let deepCopy = JSON.parse(JSON.stringify(user));

 

다음으로 deepCopy.size.height의 값을 250으로 변경하신 후 결과를 보시면 user객체와 별개로 값이 변경되는 걸 확인하실 수 있습니다.

 

deepCopy.size.height = 250;
{ name: 'sungjun', age: 50, size: { height: 250, weight: 70 } }
{ name: 'sungjun', age: 50, size: { height: 200, weight: 70 } }