Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript Object.assign() 메서드로 객체 복사하기 – 문법과 예제 완벽 정리

JavaScript의 Object.assign() 메서드는 하나 이상의 소스(source) 객체를 대상(target) 객체로 복사할 때 사용합니다. 이 메서드는 소스 객체에는 'get'을, 대상 객체에는 'set'을 활용하기 때문에 getter와 setter 역시 함께 호출됩니다.

문법

Object.assign(target, ...sourceObjects);

첫 번째 인자인 target은 복사된 속성을 받을 대상 객체이며, 그 뒤에 오는 하나 이상의 source 객체가 복사의 원본이 됩니다. 만약 여러 소스 객체에 동일한 키가 존재한다면, 나중에 전달된 객체의 값이 앞선 값을 덮어쓰게 됩니다.

예제

다음은 Object.assign()을 사용하여 객체를 복사하는 코드입니다.

var object = {first: second => second + 1000}
var object2 = Object.assign({}, object);
console.log("The result=");
console.log(object2.first(1000));

위 프로그램을 실행하려면 터미널에서 다음 명령어를 입력합니다.

node fileName.js

여기서는 파일 이름이 demo102.js라고 가정하겠습니다.

실행 결과

위 코드를 실행하면 아래와 같은 출력 결과를 확인할 수 있습니다.

PS C:\Users\Amit\JavaScript-code> node demo102.js
The result=
2000

위 예제에서는 빈 객체 {}를 대상으로 지정했기 때문에 원본 객체 object는 변경되지 않으며, 동일한 속성을 가진 새로운 객체 object2가 생성됩니다. 다만 Object.assign()은 얕은 복사(shallow copy)만 수행한다는 점에 유의해야 합니다. 즉, 객체 내부에 중첩된 객체까지 완전히 복사하지 않으므로, 깊은 복사가 필요하다면 structuredClone()이나 JSON 직렬화 방식 등을 함께 고려하는 것이 좋습니다.