Javascript

깊은 복사, 얕은 복사

aaa222 2022. 1. 19. 07:39
728x90

큰 틀로 보면

깊은 복사(Deep Copy)는 '실제 값'을 새로운 메모리 공간에 복사하는 것을 의미
얕은 복사(Shallow Copy)는 '주소 값'을 복사한다는 의미

dppe copy :깊은복사

shallow copy : 얕은복사


dppe copy

let num1 = 1; //num1 이라는 변수를 1로 대입
let num2 = num1; num2라는 변수를 선언하고 num1을 대입했다. 

num2 = 2; // num2를 2로 선언

console.log(num1,num2); //num: 1, num2: 2; 

대입하는 순간 num1에 있는 1이라는 값을

num1이라는 값을 num2로 바꾸고 num2에는 1이라는 값이 들어가며

num2에 1이라는 값이 들어가며 num2를 2라는값으로 바꿧으니

num1 = 1이고 num2 = 2로 나온다


shallow copy

let y = 1;
let n = a;

n = 2;

console.log(y); // 1
console.log(n); // 2
console.log(y === n ); // false

y변수를 새로 n변수로 할당하여 n값을 변경해도 기존 y변수의 값은
변경되지 않고 두 값을 비교하면 false가 출력되며 서로의 값이 단독이라는 것을 알수있다
메모리로 보면 독립적으로 메모리 값 자체가 할당되어 생성된 것이라고 볼수있다.

728x90