본문 바로가기

JavaScript 객체와 배열 고급 - 얕은 복사, 깊은 복사

1. 얕은 복사.

1-1. - 배열은 복사해도 다른 이름이 붙을 뿐이다. 

a를 b에 복사한 후에도 a, b는 이름만 다른 같은 배열이다. 

1-2. 객체 얕은 복사.

객체도 얕은 복사는 이름만 다른 같은 객체다. 

 

2. 깊은 복사

2.1. 배열 얕은 복사 - 복사한 두 배열이 완전히 독립적으로 작동하게 함 - 과거에는 반복문을 사용했으나, 지금은 전개연산자를 사용해 쉽게 깊은 복사가 가능하다. 

[...배열]

b = [...a] 전개연산자를 사용한 깊은 복사. - 두 배열이 독립적으로 움직임.
바로 붙여넣기도 가능.
여러개도 가능 

2-2. 객체 얕은 복사. 

마찬가지로 {...객체}

다음과 같이 '구름'이라는 객체에 변경하고 싶은 속성만 넣어서 추가로 입력한다면 다음과 같다. 

객체 안에다가 전개하기.

객체 전개는 순서가 중요하다. 전개를 뒤에서 하면 앞에 적어놓은 속성값을 뒤에 전개된 속성값들이 덮어쓸 수 있다.