320x100
Object와 Array의 경우 레퍼런스 타입이어서 아래와 같이 값이 복사되는 것 같지만 그렇지 않다.
// 변수 person과 person의 value는 각각 저장됨.
const person = {
name: 'Max'
}
const secondPerson = person;
// 값을 그대로 복사하는 것 같지만, secondPerson이 person의 value를 가르키게 됨(포인터 값)
person.name= 'Ginny';
console.log(secondPerson);
// { name : 'Ginny' }
// secondPerson는 동일하게 person의 value의 값을 가르키고 있으므로 영향을 받아 위와 같이 찍힘
별도의 person과 별개의 secondPerson을 만들기 위해서는 아래와 같이 선언해야한다.
const person = {
name: 'Max'
}
// persond 의 값을 가져와서 새로운 변수를 만듦
const secondPerson = {
...person,
age : 11
};
person.name= 'Ginny'
console.log(secondPerson);
// { name : 'Max', age: 11 }
// person의 value가 바뀌더라도 secondPerson는 value는 정의한 것과 동일하게 유지됨
// 처음처럼 secondPerson는 person의 value를 가르키고 있지 않음
반응형
'Developer > Javascript' 카테고리의 다른 글
콜백 함수 쉽게 이해하기 (0) | 2021.09.23 |
---|---|
null 병합 연산자 '??'와 '||' 의 차이 (0) | 2021.09.17 |
자주 헷갈리는 null과 undefined 비교 연산자로 알아보기 (0) | 2021.09.17 |
자바스크립트 Class 이해하기 (0) | 2021.09.07 |
querySelectorAll Elements에 클릭 이벤트 적용하기 (0) | 2020.08.04 |