# Object.assign() 메서드의 정의
MDN문서에 따르면
Object.assign() 메서드란?
열거할 수 있는 하나 이상의 출처 객체로부터 대상 객체로 속성을 복사할 때 사용합니다. 대상 객체를 반환합니다.
# Object.assign() 메서드의 예시
기본적으로 Object.assign() 메서드는 아래와 같이 사용된다.
이때 target은 대상 객체, source는 하나 이상의 출처 객체이다.
const target = { a: 1, b: 2 }
const source = { b: 3, c: 4 }
const returnedTarget = Object.assign(target, sources)
console.log(target) // { a: 1, b: 3, c: 4 }
console.log(source) // { b: 3, c: 4 }
console.log(returnedTarget) // { a: 1, b: 2 }
*주의
Object.assign() 메서드는 null 또는 undefined 출처 값에 대해서는 오류를 던지지 않는다!
위 예시의 returnedTarget대신 대상 객체 자체가 변경시키려 한다면 아래 예시 코드를 참고하자
const obj1 = { a: 1 }
const obj2 = { b: 2 }
const obj3 = { c: 3 }
Object.assign(obj1, obj2, obj3)
console.log(obj1) // { a: 1, b: 2, c: 3 }, 대상 객체 자체가 변경된다
console.log(obj2) // { b: 2 }
console.log(obj3) // { c: 3 }
같은 속성을 가진 객체 병합을 하고 싶다면 아래 예시 코드를 참고하자
const obj1 = { a: 1, b: 1, c: 1 }
const obj2 = { b: 2, c: 2 }
const obj3 = { c: 3 }
const returnedObject = Object.assign({}, obj1, obj2, obj3) // 대상 객체에 빈 객체를 넣는다.
console.log(returnedObject) // { a: 1, b: 2, c: 3 }
console.log(obj1) // { a: 1, b: 1, c: 1 }
console.log(obj2) // { b: 2, c: 2 }
console.log(obj3) // { c: 3 }
같은 속성을 가진 객체를 병합하여 새로운 객체를 반환하려 한다면 대상 객체에 빈 객체를 반드시 넣어야 한다!