JS - Shallow Copy & Deep Copy (얕은 복사 & 깊은 복사) 본문
반응형
Shallow Copy & Deep Copy (얕은 복사 & 깊은 복사)
- 얕은 복사 : 객체의 주소값(참조값)까지만 복사
- 깊은 복사 : 객체의 실제 값까지 복사 // 객체 안에 객체가 있을 경우에도 원본과의 참조가 완전히 끊어진 객체를 말함
이중 객체나 이중 배열로 이루어진 경우, 얕은 복사로는 원하는 복사가 되지 않으니, 깊은 복사를 활용해줄 필요가 있다.
깊은 복사
let origin = {
name : "otter",
favoriteFood : {
first : "sushi",
second : "hamburger" }
}
라고 한다면,
const copy = JSON.stringify(origin)
const deepCopy = JSON.parse(copy)
하는 형태로 깊은 복사를 해줄 수 있음
JSON 포멧을 사용하는 방식
JSON.stringify & JSON.parse
위와 같이 JSON(JavaScript Object Notation) 포멧을 사용하여,
1. stringify 하여 문자열화 시켜준 뒤,
** 이때 copy 가 갖는 값은 객체처럼 보이나, '문자열화'되어 있는 상태임
2. parse 를 사용하여 정상적인 데이터형식으로 만들어줌
이 경우 기존 참조값과 연결이 끊어진 깊은 복사가 완료되었다고 볼 수 있음
반응형
'개발 > JavaScript' 카테고리의 다른 글
JS - 반복문 심화2 (map / filter / sort / slice / substring / substr/split / join / reduce) (0) | 2023.01.13 |
---|---|
JS - 반복문 심화1 (break / continue / for in / for of / forEach / while) (0) | 2023.01.12 |
JS - isNaN / indexOf / new Array / fill 메서드 (0) | 2023.01.11 |
JS - 조건문 switch 문법 (0) | 2023.01.11 |
JS - null과 undefined 차이 (0) | 2023.01.11 |
Comments