Object.assign()
Object.assign(target, ...sources)
- source에서 target으로 enumerbale한 속성을 할당한다.
- target과 source가 같은 키를 갖는다면, source가 우선순위가 더 높으므로, source의 속성값으로 target에 덮어씌워진다.
- target 객체를 반환한다.
예제 1 : enumerable한 값만 복사
const target = { a: 1, b: 2 };
const source = {};
Object.defineProperty(source, 'nonEnumerable', {
value: 42,
enumerable: false
});
Object.defineProperty(source, 'enumerable', {
value: 42,
enumerable: true
});
const returnedObject = Object.assign(target, source);
console.log(returnedObject); // > Object { a: 1, b: 2, enumerable: 42 }
console.log(target); // > Object { a: 1, b: 2, enumerable: 42 }
console.log(target === returnedObject) // true
- enumerable이 false인
nonEnumerable 속성값은 target으로 할당되지 않은 것을 알 수 있다.
- Object.assign()은 target 객체를 그대로 반환하므로, target === returnedObject는 true이다.
예제 2 : 키 충돌시, source 객체의 속성이 더 높은 우선순위
const target = { key: 'target value' };
const source = { key: 'source value' };
const returnedObject = Object.assign(target, source);
console.log(returnedObject); // > Object { key: "source value" }
브라우저 호환성
IE 언제 망해?

Object.assign()
예제 1 : enumerable한 값만 복사
nonEnumerable속성값은 target으로 할당되지 않은 것을 알 수 있다.예제 2 : 키 충돌시, source 객체의 속성이 더 높은 우선순위
브라우저 호환성
IE 언제 망해?
