라이브러리
[JAVASCRIPT] Object.assign(target, source) - 여러 개의 객체를 하나의 객체로 병합
Object.assign() 메서드
`Object.assign()` 메서드는 객체의 속성을 복사하는 데 사용됩니다. 이 메서드는 첫 번째 인자로 받은 `target` 객체에 `source` 객체의 속성을 복사합니다.
Syntax
#hostingforum.kr
javascript
Object.assign(target, source1, source2, ..., sourceN)
인자
- `target`: 복사할 대상 객체입니다.
- `source1`, `source2`, ..., `sourceN`: 복사할 소스 객체입니다.
예제
#hostingforum.kr
javascript
// 객체 생성
const target = { a: 1, b: 2 };
const source1 = { b: 3, c: 4 };
const source2 = { c: 5, d: 6 };
// Object.assign() 메서드 사용
Object.assign(target, source1, source2);
console.log(target); // { a: 1, b: 3, c: 4, d: 6 }
Object.assign() 메서드의 특징
- `target` 객체에 `source` 객체의 속성이 이미 존재하는 경우, `source` 객체의 속성이 덮어씌워집니다.
- `source` 객체가 `null` 또는 `undefined`인 경우, 아무런 효과가 없습니다.
- `target` 객체가 `null` 또는 `undefined`인 경우, `target` 객체가 생성되고 `source` 객체의 속성이 복사됩니다.
Object.assign() 메서드의 활용
- 객체의 속성을 복사하는 데 사용할 수 있습니다.
- 객체의 속성을 병합하는 데 사용할 수 있습니다.
#hostingforum.kr
javascript
// 객체 생성
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
// Object.assign() 메서드 사용
const obj3 = Object.assign({}, obj1, obj2);
console.log(obj3); // { a: 1, b: 3, c: 4 }
Object.assign() 메서드의 단점
- 객체의 속성을 복사할 때, 객체의 참조가 복사되지 않습니다. 따라서 객체의 속성이 객체를 참조하는 경우, 원본 객체가 변경될 때, 복사된 객체도 변경됩니다.
#hostingforum.kr
javascript
// 객체 생성
const obj1 = { a: { b: 1 } };
const obj2 = { a: { b: 2 } };
// Object.assign() 메서드 사용
const obj3 = Object.assign({}, obj1, obj2);
obj1.a.b = 3;
console.log(obj3); // { a: { b: 3 } }
Object.assign() 메서드의 대안
- `Object.create()` 메서드를 사용하여 객체를 복사할 수 있습니다.
- `JSON.parse(JSON.stringify())` 메서드를 사용하여 객체를 복사할 수 있습니다.
#hostingforum.kr
javascript
// 객체 생성
const obj1 = { a: 1, b: 2 };
// Object.create() 메서드 사용
const obj2 = Object.create(obj1);
console.log(obj2); // { a: 1, b: 2 }
// JSON.parse(JSON.stringify()) 메서드 사용
const obj3 = JSON.parse(JSON.stringify(obj1));
console.log(obj3); // { a: 1, b: 2 }
댓글목록
등록된 댓글이 없습니다.