const a = {
name: "woong",
age: 12,
};
const { name: myName, age: myAge } = a;
console.log(myName); // woong
console.log(myAge); // 12
위 방식으로 객체 전개 구문에서 변수 이름을 바꿔줄 수 있다.
const a = {
name: "woong",
age: 12,
};
const b = Object.assign({}, a);
const c = { ...a };
b.name = "hoon";
console.log(a.name); // woong (안바뀜)
c.name = "june";
console.log(a.name); // woong (안바뀜)
b 와 c 두 방식 모두 객체의 주소가 복사된 것이 아니라 새로운 객체로 복사된 것을 알 수 있다.
즉, 구조분해 할당으로 객체를 선언하면 새로운 객체가 생성된다.
보통 아래와 같이 새로운 객체를 생성하면서 바꿔줘야 할 값은 덮어씌우면서 바꾸어준다.
const a = {
name: "woong",
age: 12,
};
const c = { ...a, age: 17 };
console.log(c);
//{ name: 'woong', age: 17 }
'CS 스터디' 카테고리의 다른 글
[웅's 강의] 해시, 해시함수, 해시테이블 총정리 (4) | 2022.01.14 |
---|---|
[JS] Lexical scope 와 closure 와 this (0) | 2021.11.07 |
[JS] let, const 와 var 의 차이 (0) | 2021.11.07 |
[웅's HTTP 완벽가이드] 3장 (2편) - 상태 메시지와 헤더 총정리 (HTTP/1.1까지) (0) | 2021.10.24 |
[웅's HTTP 완벽 가이드] 3장(1편) - HTTP 메시지 ( 메서드 총정리 ) (0) | 2021.10.17 |