[객체 Spread]
const codeit = {
name: 'codeit',
};
const codeitClone = {
...codeit, // spread 문법!
};
console.log(codeit); // {name: "codeit"}
console.log(codeitClone); // {name: "codeit"}
중괄호 안에서 객체를 spread 하게되면, 해당 객체의 프로퍼티들이 펼쳐지면서 객체를 복사할 수가 있음.
const latte = {
esspresso: '30ml',
milk: '150ml'
};
const cafeMocha = {
...latte,
chocolate: '20ml',
}
console.log(latte); // {esspresso: "30ml", milk: "150ml"}
console.log(cafeMocha); // {esspresso: "30ml", milk: "150ml", chocolate: "20ml"}
다른 객체가 가진 프로퍼티에 다른 프로퍼티를 추가해서 새로운 객체를 만들 때 활용할 수 있음.
배열을 Spread 하면 새로운 배열을 만들거나 함수의 아규먼트로 사용할 수 있지만 객체로는 새로운 배열을 만들거나 함수의 아규먼트로 사용할 수 없음.
const latte = {
esspresso: '30ml',
milk: '150ml'
};
const cafeMocha = {
...latte,
chocolate: '20ml',
}
[...latte]; // Error
(function (...args) {
for (const arg of args) {
console.log(arg);
}
})(...cafeMocha); // Error
따라서 객체를 Spread 할 때는, 반드시 객체를 표현하는 중괄호 안에서 작성해야 함.
'JavaScript > Modern JavaScript' 카테고리의 다른 글
[JavaScript] 구조 분해 Destructuring (배열) (0) | 2023.02.16 |
---|---|
[JavaScript] 모던한 프로퍼티 표기법 (0) | 2023.02.12 |
[JavaScript] Spread 구문 (0) | 2023.02.06 |
[JavaScript] 조건부 연산자 (Conditional operator) (0) | 2023.02.06 |
[JavaScript] Rest Parameter (0) | 2023.02.01 |