CS 스터디

[JS] 객체 구조분해 할당 이름 바꾸기, 객체 spread syntax

CodeBoyEd 2021. 11. 7. 16:05
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 }