반응형
object spread는 항상 새로운 객체를 생성함
const a = { name: 'Joe Bloggs' }
const b = { ...a, age: 27 };
console.log(a === b) //=> false
Object.assign은 이미 존재하는 객체를 mutate하게도 가능함
const a = { name: 'Joe Bloggs' }
const b = Object.assign(a, { age: 27 });
console.log(a === b) //=> true
Object.assign을 활용해서 객체를 복사하려면 첫 번째 파라미터로 빈 객체를 넣으면 된다.
const a = { name: 'Joe Bloggs' }
const b = Object.assign({}, a, { age: 27 });
console.log(a === b) //=> false
Recap
object spread는 이미 존재하는 객체를 변화하지 않기 때문에 Object.assign보다 더 안전하고 간결하다. 따라서 object spread를 쓰도록 하자!
참고 자료
https://stackoverflow.com/questions/38462000/difference-between-object-assign-and-object-spread
반응형
'Front-End: Web > JavaScript' 카테고리의 다른 글
[js]tilde(~)와 double tilde(~~) (0) | 2022.12.06 |
---|---|
[js] 변수를 사용하기 전에 꼭 알아야할 "TDZ(Temporal Dead Zone)" (0) | 2022.11.29 |
[JavaScript] eval() 함수를 사용하지 마세요! eval() is evil! (0) | 2022.11.27 |
[js] lastIndexOf (+ 활용법 with indexOf) (0) | 2022.11.17 |
[js] includes vs in (0) | 2022.11.16 |