const person = {
name: "Max"
};
const secondPerson = person;
person.name = "Manu"
console.log(secondPerson);
///
[object Object]{
name:"Manu"
}
secondPerson은 person의 pointer을 복사한 격이다.
그렇기에 person이 바뀌게 되면 secondPerson도 바뀐다.
하지만 아래와 같이 spread를 사용한다면 person의 속성만을 복사할 수 있다.
const person = {
name:"Max"
};
const secondPerson = {
...person
};
person.name="Manu";
console.log(secondPerson);
///
[object Object]{
name:"Max"
}
Object와 array는 reference type.
만약 내가 copy를 한다면 나는 pointer을 copy하는 것일 뿐, value까지 copy하지는 못한다. 따라서 copy를 하고 싶다면 spread로 property를 copy해야 한다. object 자체를 카피하는 것이 아니라.