Object.assign()
Object.assign(목표객체, ...출처객체);
Object.assign() 메소드는 출처 객체의 속성들을 목표 객체로 복사합니다. 수정된 목표 객체를 반환합니다.
- 기존 목표객체 변경
const target = { a: 'Apple', b: {name: 'Banana', color: 'yellow'}};
const source = { b: {name: 'Grape', color: 'purple'} };
const copied = Object.assign({}, target);
// { a: 'Apple', b: {name: 'Banana', color: 'yellow'} }
const assigned = Object.assign(target, source);
// { a: 'Apple', b: {name: 'Grape', color: 'purple'} }
const assigned2 = Object.assign(copied, source);
// { a: 'Apple', b: {name: 'Grape', color: 'purple'} }
console.log(Object.is(copied, target)); // false
console.log(Object.is(copied.b, target.b)); // true
console.log(Object.is(assigned, assigned2)); // false
전개구문 spread ( ...)
myFunction(...iterableObj);
전개 구문을 사용하면 배열이나 문자열과 같이 반복 가능한 문자를 0개 이상의 인수 (함수로 호출할 경우) 또는 요소 (배열 리터럴의 경우)로 확장하여, 0개 이상의 키-값의 쌍으로 객체로 확장시킬 수 있습니다.
spread 는 객체 또는 배열인 iterableObj 펼칠 수 있습니다.
- 기존 객체 또는 배열을 변경하지 않음
const A = { a: 'Apple', b: {name: 'Banana', color: 'yellow'}};
const B = { b: {name: 'Grape', color: 'purple'} };
const copied = {...A};
// { a: 'Apple', b: {name: 'Banana', color: 'yellow'} }
const spreaded = {...A, ...B};
// { a: 'Apple', b: {name: 'Grape', color: 'purple'} }
console.log(Object.is(copied, A)); // false
console.log(Object.is(copied.b, A.b)); // true
▶ 배열을 복사할 때에는 concat() 함수를 사용하는 것이 더 좋습니다.
'웹개발 > 자바스크립트' 카테고리의 다른 글
[Js] filter() - 배열 객체 검색 & 걸러내기 (0) | 2021.08.09 |
---|---|
[Js] localeCompare() - 문자열과 문자열 정렬 순서 비교 (0) | 2021.08.09 |
[Js] Math.random() - 랜덤숫자(난수)생성하기 (0) | 2021.08.08 |
[Js] repeat() - 문자열 반복하기 (0) | 2021.08.04 |
[Js] 배열에서 최대값 / 최소값 찾는 방법 (0) | 2021.08.04 |