728x90
https://hanamon.kr/javascript-shallow-copy-deep-copy/
얕은 복사 vs 깊은 복사
얕은 복사 : 주소값만 참조해주는 것. Object.assign()
즉, 같은 원본을 할당받기 때문에 하나의 내용 변경하면 다른 하나가 항상 같이 변함!
깊은 복사 : 주소값 아닌 그 안에 값을 복사해주는 것.
주소 값을 참조하는 것이 아니기때문에 같이 변하지 않음.
spread oprator : 요소 값을 가져오겠다 라는 뜻
사용 형식
const obj = { a:1, b:2 };
const obj2 = { ...obj1 };
깊은 복사의 함정..
spread oprator 사용해도 완벽한 깊은 복사는 아니다.
- Object.assign() 메소드도 spread 연산자 둘 다 완벽한 Deep copy 되지 않는다.
- 객체가 서로 다르다고 깊은 복사가 이루어진건 아니다.
- 1 depth 까지는 확실하게 Deep copy.
- 2 depth 이상이면 Shallow copy.
https://helloinyong.tistory.com/267
728x90
'백엔드 > Javascript' 카테고리의 다른 글
[Javascript] 버튼에 이벤트 발생시키기, 동기식 Callback, script 외부연결, onload (0) | 2022.01.10 |
---|---|
[Javascript] this, new, class, 콜스택 (0) | 2022.01.07 |
[Javascript] 문자열, 배열 메서드 (0) | 2022.01.06 |
[Javascript] 자료구조, 이중for문(별쌓기), 재귀함수(피보나치수열) (0) | 2022.01.05 |
[Javascript] 배열 prototype 메서드, 속성, 객체 속 객체 (0) | 2022.01.04 |