Shallow Copy & Deep Copy

홍성표·2022년 5월 19일
0

Shallow Copy (얕은 복사) 란?

const obj1 = {
  a: 1,
  b: 2,
  c: 3
};
const obj2 = obj1;

console.log (obj1 === obj2) // true

obj2.a = 100;

console.log (obj1.a); // 100
  • 이처럼 객체를 직접 대입하는 경우 참조의 의한 할당이 이루어지므로 둘은 같은 데이터(주소)를 가지고 있다.
  • 같은 데이터(주소)를 가지고 있기 때문에 obj2 의 property 를 수정하고 obj1 을 출력해도 obj2 값과 동일하다.

Deep Copy (깊은 복사) 란?

  • 객체를 복사할 때, 객체가 가지고 있는 필드의 값을 복사한다.
  • 이 때, 기본형 값들은 그대로 복사가 되며 참조형 변수의 경우 변수가 참조하는 객체에 대해서도 새롭게 복사해서 만들어진다.
profile
안녕하세요. 홍성표입니다.

0개의 댓글