Skip to content

Object.assign() : source에서 enumerable property들을 target에 할당 #29

Description

@yejineee

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 언제 망해?
스크린샷 2021-10-02 오후 3 47 21

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions