[JS] Object.assign()

곽태민·2023년 8월 14일
0

TIL

목록 보기
41/63

Object.assign()

Object.assign()Javascript에서 객체를 병합하거나 복사할 때 사용되는 메서드다. 이 메서드를 사용하면 하나 이상의 소스 객체의 속성을 타깃 객체로 복사할 수 있다. 즉, 소스 객체의 속성을 타깃 객체에 병합하거나 덮어쓰는 역할을 수행한다.

Object.assign(target, ...sources)의 형태로 사용되고, 첫 번째 인수인 target은 병합된 결과가 지정될 대상 객체이다. 나머지 인수는 하나 이상의 소스 객체로, 이들의 속성이 target에 복사된다.

const target = [];
const source1 = { a: 1 };
const source2 = { b: 2 };

Object.assign(target, source1, source2);

console.log(target); // { a: 1, b: 2 }

위 코드처럼 target 객체에 source1source2 객체의 속성이 병홥되어 들어간다. 만약 동일한 속성이 이미 target에 존재한다면, 해당 속성은 마지막 객체에 있는 값으로 덮어쓰이게 된다.

Object.assgin()은 새로운 객체를 생성하지 않고 기존 객체를 수정하는 작업이며, 얄은 복사 (shallow copy) 를 수행한다.

중첩된 객체의 경우에는 내부 객체의 참조가 복사되어 주의가 필요하다. 만약 깊은 복사 (deep copy) 를 수행하려면 다른 방법이 필요하다.

const source = { nested: { a: 1 } };
const target = {};

Object.assign(target, source);

console.log(target); // { nested: { a: 1} }

source.nested.a = 2;
console.log(tartget); // { nested: { a: 2 } }

즉, Object.assign()객체병합하거나 복사하기 위한 메서드로서, 여러 개의 소스 객체를 하나의 target 객체로 합치는 역할을 한다.

profile
Node.js 백엔드 개발자입니다!

2개의 댓글

comment-user-thumbnail
2023년 8월 14일

좋은 정보 감사합니다

1개의 답글