: 참조값을 복사
기존 객체의 주소를 그대로 참조하는 객체를 새로 만드는 것
복사한 객체의 값 변경 >> 기존 객체의 값도 변경!⭐
var a = 1;
a = 2;
console.log(a); //2
첫번째 줄 : 메모리 공간을 확보한 뒤, 다른 메모리 공간에 1을 할당하고 1이 저장된 주소를 a가 저장
두번째 줄 : 그 후에 2를 재할당할 때 1이 저장된 메모리 공간은 그대로 두고, 2를 저장할 메모리 공간을 추가로 확보한 뒤에 저장한 뒤에 그 공간의 주소를 a가 저장
: 실제값을 새로운 메모리 공간에 복사
객체에 중첩된 객체까지 모두 복사!⭐
Object.assign(생성할 객체, ...복사할 객체);
생성할 객체 = {...복사할 객체} 생성할 배열 = [...배열]
생성할 객체 = JSON.parse(JSON.stringify(복사할 객체));
: 기본 자료형
ex) Number, String, Boolean, Null, Undefined ..
값을 복사 할 때 복사된 값을 다른 메모리에 할당 하기 때문에
원래의 값과 복사된 값이 서로에게 영향 x
: 메모리에 저장된 객체
ex) Object, Array, Function ..
변수가 객체의 주소를 가리키는 값이므로 복사된 값이 같은 값을 가리킴