자바스크립트 객체 속성 복사 (Copying Object Properties)

자바스크립트에서 객체는 매우 유연하고 강력한 데이터 구조입니다. 객체의 속성을 복사하는 작업은 많은 개발자들이 자주 진행하는 작업 중 하나입니다. 이 글에서는 JavaScript에서 객체 속성을 복사하는 다양한 방법을 알아보겠습니다.

1. Object.assign()을 사용한 속성 복사

Object.assign() 메소드를 사용하면 한 객체에서 다른 객체로 속성을 복사할 수 있습니다. 다음은 Object.assign()을 사용한 간단한 예시입니다.

const source = { name: "John", age: 30 };
const target = {};

Object.assign(target, source);

console.log(target); // { name: "John", age: 30 }

위의 코드에서 source 객체의 속성들이 target 객체로 복사됩니다. Object.assign() 메소드는 target 객체에 source 객체의 속성을 복사하고, 복사된 객체인 target을 반환합니다. 이를 통해 source 객체의 속성을 target 객체로 복사할 수 있습니다.

2. Spread Operator를 사용한 속성 복사

ES6에서 소개된 Spread Operator를 사용하여 객체 속성을 복사할 수도 있습니다. 다음은 Spread Operator를 사용한 예시입니다.

const source = { name: "John", age: 30 };
const target = { ...source };

console.log(target); // { name: "John", age: 30 }

위의 코드에서 source 객체의 속성들이 target 객체로 복사됩니다. Spread Operatorsource 객체의 속성을 target 객체로 펼쳐서 복사하는 역할을 합니다.

3. JSON.stringify()JSON.parse()를 사용한 속성 복사

또 다른 방법은 JSON.stringify()JSON.parse()를 사용하여 객체를 JSON 문자열로 변환하고 다시 객체로 파싱하는 것입니다. 다음은 이 방법의 예시입니다.

const source = { name: "John", age: 30 };
const target = JSON.parse(JSON.stringify(source));

console.log(target); // { name: "John", age: 30 }

위의 코드에서 JSON.stringify() 메소드는 source 객체를 JSON 문자열로 변환합니다. 이후 JSON.parse() 메소드를 사용하여 JSON 문자열을 다시 객체로 파싱합니다. 이를 통해 source 객체의 속성이 target 객체로 복사됩니다.

4. Object.create()를 사용한 속성 복사

Object.create() 메소드를 사용하여 새로운 객체를 만들고 다른 객체의 속성을 복사하는 방법도 있습니다. 다음은 이 방법의 예시입니다.

const source = { name: "John", age: 30 };
const target = Object.create(source);

console.log(target); // {}
console.log(target.name); // John
console.log(target.age); // 30

위의 코드에서 source 객체가 target 객체의 프로토타입이 되고, 이를 통해 target 객체에 속성이 복사됩니다.

결론

이 글에서는 자바스크립트에서 객체 속성을 복사하는 다양한 방법을 알아보았습니다. Object.assign() 메소드, Spread Operator, JSON.stringify()JSON.parse(), 그리고 Object.create()를 사용하여 객체 속성을 복사할 수 있는 방법들을 살펴보았습니다. 이러한 방법들 중에서 상황에 맞는 방법을 선택하여 사용하면 됩니다. 객체의 속성을 복사하는 작업은 개발 시 자주 사용되므로, 이를 잘 숙지하고 활용하여 더욱 효율적인 코드를 작성할 수 있도록 노력해야 합니다.