const obj1 = { a: 1, b: 2};
const obj2 = obj1;
console.log( obj1 === obj2 ); // true
위의 예시처럼 객체를 직접 대입하는 경우, 둘은 같은 데이터(주소)를 가지고 있다.
const obj1 = { a:1, b:2 };
const obj2 = obj1;
obj2.a = 100;
console.log( obj1.a ); // 100
때문에 obj2의 property를 수정하고, obj1을 출력해도 obj2 값과 동일하다.
얕은 복사처럼 주소를 복사해서 공유하는 것이 아니라, 아예 새로운 객체안 속성(property)만 복사해서 사용할 수 없을까?
const obj1 = { a:1, b:2 };
const obj2 = { ...obj };
obj2.a = 100;
console.log( obj1 === obj2 ) // false
console.log( obj1.a ) // 1