[정리] 객체,배열 깊은 복사하기
2021. 2. 3. 10:29ㆍ프로그래밍-Web/Javascript
요약: 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을 다룬다는 것이고, 이 때문에 깊은 복사가 수행되는 것이다.
- 유일하게 깊은 복사가 수행된다. 그러나 성능이 구리다.
'프로그래밍-Web > Javascript' 카테고리의 다른 글
[이슈] foreach에서 break사용하기 (0) | 2021.02.23 |
---|---|
[정리] map, filter, reduce, set 사용 꿀팁 (0) | 2021.01.28 |
[정리] canvas API로 이미지 다운받기 (0) | 2021.01.26 |
[이슈] Map과 ForEach의 차이 (0) | 2021.01.18 |
[개념정리] 자바스크립트 엔진 v8이 사용하는 Hidden Class, Inline Cacahing (0) | 2021.01.18 |