Web Dev/1. JS 문법 관련

Object.assign() - 열거가능한 모든 프로퍼티 복사

hYhY1234 2021. 5. 21. 21:49
728x90

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign

 

Object.assign() - JavaScript | MDN

The Object.assign() method copies all enumerable own properties from one or more source objects to a target object. It returns the target object.

developer.mozilla.org

Immutable.js같은걸 항상 도입할 수 있는 것은 아니다. 그렇기때문에 그런걸 쓰지 않고도 Data를 copy해야할때가 있는데 열거가능한 모든 프로퍼티를 복사할때 Object.assign()을 사용할 수 있다. 

 

https://stackoverflow.com/questions/34504682/js-does-object-assign-create-deep-copy-or-shallow-copy

 

JS: Does Object.assign() create deep copy or shallow copy

I just came across this concept of var copy = Object.assign({}, originalObject); which creates a copy of original object into the "copy" object. However, my question is, does this way of cloning

stackoverflow.com

하지만 Object.assign()은 Deep Copy를 하는 것은 아니고, Shallow Copy를 하는 것이고, 프로퍼티의 enumerable 속성이 false로 설정되어있으면 사용이 불가하다. 

 

그리고 prototype같은 것들은 copy되지 못한다. 

 

const original = { a: 1, b: 2 };
const copy = Object.assign({}, original)

Original Object의 열거가능한 Property가 복사 된다.