코딩하며 유용한 정보가 생각날 때마다 작성하는 글입니다.
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const merged = { ...obj1, ...obj2 };
console.log(merged); // { a: 1, b: 3, c: 4 }
위 예시 코드는 두 개의 객체 obj1과 obj2를 병합하여 새로운 객체 merged를 생성하고 있습니다.
...
구문은 전개 구문(Spread syntax)으로, 객체나 배열의 요소를 펼쳐서 전달하거나 병합할 수 있습니다.
...obj1
은 obj1 객체의 속성들을 전개하여 새로운 객체 안에 포함시키는 역할을 합니다.
...obj2
도 마찬가지로 obj2 객체의 속성들을 전개하여 새로운 객체 안에 포함시킵니다.
만약 두 객체에 같은 속성이 있다면, 뒤에 있는 객체의 속성 값이 우선순위를 가지게 됩니다.
따라서 위 코드에서는 obj1의 a, b 속성과 obj2의 b, c 속성이 모두 포함된 객체가 생성되고, obj2의 b 속성 값인 3이 obj1의 b 속성 값인 2를 덮어씌우게 됩니다.
따라서 merged 객체의 결과는 { a: 1, b: 3, c: 4 }가 됩니다.
이 방식은 기존 객체를 변경하지 않고, 새로운 객체를 생성하여 기존 객체와 다른 객체를 병합할 수 있는 장점이 있습니다.