[javascript] 객체 할당과 참조 문제.

자바스크립트에서는 객체를 다룰 때 객체 할당과 참조 문제에 주의해야 합니다. 객체 할당은 참조를 복사하고, 객체를 수정하는 경우에도 같은 참조를 가진 변수들이 영향을 받을 수 있습니다.

객체 할당

자바스크립트에서 객체를 할당할 때, 변수에는 객체의 실제 데이터가 복사되는 것이 아니라, 참조가 복사됩니다.

예를 들어:

let originalObject = { name: "John" };
let copiedObject = originalObject;

이 경우 copiedObjectoriginalObject같은 객체를 가리키는 참조를 갖습니다.

참조 문제

만약 copiedObject를 통해 객체를 수정하면, originalObject 또한 같은 객체를 참조하고 있기 때문에 같이 수정됩니다.

copiedObject.name = "Jane";
console.log(originalObject.name); // 출력 값: "Jane"

copiedObject를 통해 객체를 수정했지만, originalObject의 값 역시 변경된 것을 확인할 수 있습니다.

해결 방법

이러한 문제를 피하려면, 깊은 복사를 활용하여 객체를 복사해야 합니다. 깊은 복사를 통해 실제 데이터가 복사되어 새로운 참조가 생성되므로, 객체를 수정해도 다른 변수에 영향을 주지 않습니다.

let originalObject = { name: "John" };
let copiedObject = JSON.parse(JSON.stringify(originalObject));
copiedObject.name = "Jane";
console.log(originalObject.name); // 출력 값: "John"

깊은 복사를 통해 copiedObject의 값을 변경해도 originalObject에는 영향을 주지 않음을 확인할 수 있습니다.

지적이나 질문이 있으시면 언제든지 알려주세요.