Object.create
const newObj = Object.create({});
const nullObj = Object.create(null);
파라미터로 전달된 프로토타입을 갖는 새로운 객체를 만들어낸다. 결과만 보면 new Class()
와 비슷하게 동작해서 혼동할 수 있지만 좀 더 다양한 사용법은 이 문서를 통하여 확인해볼 수 있다.
Object.assign
const newObj = Object.create({ A: 1, B: 2 });
const merged = Object.assign(newObj, { B: 3, C: 4 }); // { A: 1, B: 3, C: 4 }
const isSame = newObj === merged; // true
객체 2개를 인자로 받는데 1번 객체에 2번 객체를 병합하는 함수다. 2번 객체의 열거가능키가 있는한 모든 멤버를 첫 번째 인자의 객체로 복사한다. 복사할 때에는 값을 복사하기 때문에 깊은 복사deep copy를 원할 경우 다른 방법을 사용해야한다.1
Footnotes
-
주소도 값이므로 복사시 주소값이 복사된다. ↩