[JavaScript] 얕은 복사(shallow copy) vs. 깊은 복사(deep copy)

해리포터·2022년 5월 16일
0

아래의 예시를 활용해 얕은 복사깊은 복사에 대해서 알아보자.

let personOriginal = {  
	name: 'Kim', 
    age: 30, 
    job: 'Software Engineer' 
};

얕은 복사 (shallow copy)

  • 주소(reference) 를 복사
    → 원본 X 와 복사본 Y 의 주소가 같은 메모리 위치를 가리킨다.
let personDuplicate = personOriginal; // Shallow copy

깊은 복사(deep copy)

  • 원본X에 담겨진 것들을 복사해서 Y에 붙여넣기 한다.
    • (중요!) Y에는 X의 주소가 아닌, Y의 주소가 담겨 있다.
    • 그러므로 Y를 변경해도, X가 변경되지는 않는다.
let personDuplicate = { 
	name: personOriginal.name, 
	age: personOriginal.age, 
	Profession: personalOriginal.Profession}; //Deep copy!

참고한 사이트:
https://medium.com/@manjuladube/understanding-deep-and-shallow-copy-in-javascript-13438bad941c

https://www.freecodecamp.org/news/how-to-clone-an-array-in-javascript-1d3183468f6a/

(추천)
https://velog.io/@min1378/%EA%B0%9D%EC%B2%B4%EC%9D%98-%EC%96%95%EC%9D%80-%EB%B3%B5%EC%82%AC-vs-%EA%B9%8A%EC%9D%80-%EB%B3%B5%EC%82%AC

profile
FE Developer 매일 한 걸음씩!

0개의 댓글