IT/javascript 9

javascript 깊은 복사 call by reference

javascript 개바을 하다가 json 객체를 복사해서 사용 할이 생겼는데 사본은 변경하는데 계속 원본이 변경이 되는것이다. 알고 보니 javascript는 Object객체 복사는 기본으로 call by reference가 일어나 원본이 변경이 되었다. 깊은 복사 방법이라고 해서 여러가지를 적용해 봤는데 다 제대로 동작을 안하고 var obj2 = JSON.parse(JSON.stringify(obj1)); 이렇게 문자로 만든 다음 다시 파싱을 해줬더니 원래 의도대로 작동을 했다. 10년 넘게 개발을 하면 이거를 복사 할일이 없었고, call by reference였다는 걸 몰랐다는 신기하다.

IT/javascript 2023.12.11