728x90
반응형
JavaScript에서 객체를 복사하는 방법에는 여러 가지가 있습니다.
주어진 예제에서 let cvtData = { ...data };와 let cvtData = data;의 차이점은 다음과 같습니다:
Spread 문법을 사용한 객체 복사 ({ ...data }):
- 복사 방식: Spread 문법을 사용하여 객체 data를 복사합니다.
- 동작: 새로운 객체가 생성되며, data 객체의 속성들이 새로운 객체에 복사됩니다. 이 과정에서 깊은 복사(deep copy)가 이루어지지 않으며, 속성 값이 객체나 배열인 경우에는 참조 관계가 유지될 수 있습니다.
let data = { foo: 'bar' };
let cvtData = { ...data };
단순 대입을 통한 객체 참조 (data):
- 복사 방식: 단순히 data 변수를 cvtData에 할당합니다.
- 동작: data와 cvtData는 동일한 객체를 참조하게 됩니다. 따라서 한 객체의 변경 사항이 다른 객체에도 반영됩니다.
let data = { foo: 'bar' };
let cvtData = data;
결론
- Spread 문법을 사용한 객체 복사는 원본 객체의 속성들을 새로운 객체로 복사하여 새로운 객체를 만드는 반면,
- 단순 대입을 통한 객체 참조는 같은 객체를 참조하게 됩니다.
따라서 객체를 변경해야 하지만 원본 객체는 그대로 유지하고 싶을 때는 Spread 문법을 사용하여 새로운 객체를 생성하는 것이 좋습니다.
728x90
반응형
'Front > JS & jQuery' 카테고리의 다른 글
[js] event.target / event.currentTarget (0) | 2024.07.28 |
---|---|
[jquery] $.each 객체가 컬렉션으로 사용되는 경우 (0) | 2024.07.12 |
[js] bind() (0) | 2024.07.10 |
[js][Echarts] pie chart 기본 색상 코드 (0) | 2024.07.02 |
[js][echarts] sunburst 유형 (0) | 2024.06.29 |