[Javascript] 얕은 복사, 깊은 복사
https://hanamon.kr/javascript-shallow-copy-deep-copy/
얕은 복사 vs 깊은 복사
[JavaScript] 얕은 복사(shallow copy) vs 깊은 복사(deep copy) - 하나몬
💡 얕은 복사(shallow copy) vs 깊은 복사(deep copy) ❗️얕은 복사(shallow copy)란? const obj1 = { a: 1, b: 2}; const obj2 = obj1; console.log( obj1 === obj2 ); // true 위의 예시처럼 객체를 직접 대입하는 경우 참조에 의
hanamon.kr
얕은 복사 : 주소값만 참조해주는 것. 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
[2020.04.26] Javascript 깊은 복사의 함정... 모르고 사용하다 뒤통수 맞았다...
사이드 프로젝트 진행 중, 내게 엄청나게 스트레스를 안겨준 요소가 있었다. Javascript의 깊은 복사의 함정.. 우선 이 깊은 복사의 함정을 설명하기 위해서, Object 복사의 개념에 대해 간단히 설명
helloinyong.tistory.com