JavaScript - 깊은 복사와 얕은 복사

김서영·2024년 2월 13일
0

깊은 복사와 얕은 복사


얕은 복사

객체나 배열의 첫 번째 레벨만 복사하는 방식

객체의 참조값(주소값)을 복사
=> 객체 내부에 있는 객체나 배열은 참조로 복사됨
원본 객체의 내부 객체나 배열이 변경되면 복사본에도 영향을 줌

예)

const original = { a: 1, b: { c: 2 } };

// Shallow copy using Object.assign()
const shallowCopy = Object.assign({}, original);
// 또는
// const shallowCopy = { ...original }; // spread 연산자

original.b.c = 3;
console.log(shallowCopy.b.c); // 출력: 3

깊은 복사

원본 객체의 모든 레벨을 재귀적으로 복사하여 새로운 객체를 생성

객체의 실제 값 복사
=> 내부 객체나 배열도 새로운 메모리에 복사됨
깊은 복사를 구현하는 방법 중 하나는 재귀적으로 객체를 탐색하고 복사하는 방법
또는 외부 라이브러리나 내장 메서드를 사용하여 깊은 복사를 수행할 수 있음

예)

const original = { a: 1, b: { c: 2 } };

const deepCopy = JSON.parse(JSON.stringify(original));

original.b.c = 3;
console.log(deepCopy.b.c); // 출력: 2
profile
개발과 지식의 성장을 즐기는 개발자

0개의 댓글

관련 채용 정보