티스토리 뷰

Dev./javascript

[JS] Object.assign, spread

인쥭 2022. 4. 20. 09:14
반응형
  • JS의 객체를 저장하는 변수는 객체의 주소를 참조한다.
  • Object.assign({}, target) 명령어는 새로운 객체를 만들고 원본 객체의 열거 가능한 속성을 복사한다. 
    • spread 연산자 ...도 마찬가지!
const origin = {
    id: 0,
    name: 'injuk',
    age: '1',
};

// 참조를 복사하므로 두 객체는 같다.
const obj1 = origin;
check(obj1);

// 새로운 빈 객체를 만들고 원본의 속성을 복사하므로 두 객체는 다르다.
const obj2 = Object.assign({}, origin);
check(obj2);

// 새로운 객체를 만들고, 원본 객체에 새로운 객체의 속성을 복사하므로 두 객체는 같다.
const obj3 = Object.assign(origin, { temp: true });
check(obj3);

// 새로운 객체를 만들고 원본 객체의 속성을 복사하므로 두 객체는 다르다.
const obj4 = { ...origin };
check(obj4);

function check(target) {
    console.log(origin === target);
}

/* 실행 결과
true
false
true
false
*/
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함