JS-Reference and Primitive Types Refresher

뿌야·2023년 3월 20일
0

자바스크립트

목록 보기
15/24
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 자체를 카피하는 것이 아니라.

0개의 댓글