728x90
반응형
얕은 복사(shallow copy)
얕은 복사는 주소값을 복사하는 것을 의미합니다.
const obj1 = { a: 10, b: 20};
const obj2 = obj1;
obj2.a = 30;
console.log(obj1 === obj2); // true
console.log(obj1.a); // 30
obj1 객체를 obj2라는 새로운 객체에 할당했습니다. 이를 참조 할당이라고 합니다.
두 객체를 비교하면 true가 출력됩니다.
결국 데이터가 해당하는 데이터의 주소(참조)값을 전달해주어 데이터를 공유하는 것을 의미합니다.
깊은 복사(deep copy)
깊은 복사는 값 자체를 복사하는 것을 의미합니다.
let a = 10;
let b = a;
b = 20;
console.log(a); // 10
console.log(b); // 20
console.log(a === b); // false
a를 b에 할당했습니다 그럼에도 a의 값은 변경되지 않습니다.
두 값을 비교하면 false가 출력됩니다.
javascript의 원시 타입은 깊은복사가 가능하며,
독립적인 변수에 어떠한 값 자체를 할당하는 것이라고 생각할 수 있습니다.
728x90
반응형
'Study > JavaScript' 카테고리의 다른 글
[Javascript] 콜백(Callback)이란? (0) | 2022.04.22 |
---|---|
[JavaScript] 클로저(Closure)란? (0) | 2022.04.12 |
[JavaScript] 스코프(Scope)란? (0) | 2022.04.09 |
[JavaScript] var, const, let 키워드 차이점 (0) | 2022.04.05 |
이벤트 루프(Event Loop)란? (0) | 2022.01.24 |