본문 바로가기

Front-End: Web/JavaScript

[js] 객체 복사: Object.assign vs. object spread

반응형

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

 

Difference between Object.assign and object spread

Having var obj = { a: 1, b: 2}; What are the differences between obj = Object.assign(obj, { c: 3}); And obj = {...obj, c: 3 };

stackoverflow.com

 

반응형