프로그래밍-Web/Javascript
[정리] 객체,배열 깊은 복사하기
개발자1344
2021. 2. 3. 10:29
요약: JS에서 깊은 복사를 하는 방법은 라이브러리를 사용하지 않는 이상, JSON을 사용하는 방법 뿐이다.
1. slice 메소드
- nested하지 않은 배열에서 얕은 복사를 수행
- 얕은 복사가 수행된다
2. spread operator
- 내부적으로 iterator-looping을 수행, 얕은 복사가 수행된다.
3. Object.assign
- object.assign은 첫번째 args에 두번째 value를 담는 것으로 복사를 수행한다.
- 얕은 복사가 수행된다.
4. JSON.parse와 JSON.stringify
- 객체를 문자열로 바꿨다가 그대로 담으므로 nested도 간단하게 복사 가능
- 객체를 문자열로 바꾼다는 것의 뜻은, primitive type을 다룬다는 것이고, 이 때문에 깊은 복사가 수행되는 것이다.
- 유일하게 깊은 복사가 수행된다. 그러나 성능이 구리다.