객체를 복사를 해올 수 있는 도구 스프레드 연산자는 ES6문법으로 배열, 객체등의 개별 요소를 각각 복사해와 분리해주는 메서드이다.
얕은복사란 객체를 속성값으로 갖는 객체의 경우 한단계까지만 복사한다.
얄은 복사는 '주소' 즉 값의 위치를 복사하는 것이다.(값의 메모리 주소 참조)
새로운 인스턴스를 생성하지 않아 깊은 복사보다 빠르다.
깊은복사란 객체에 중첩되어 있는 객체까지 모두 복사하는 것을 말한다.
얕은 복사와 달리 주소값이 아닌, 데이터 값 자체를 모두 복사하는 것이다.
복사된 데이터는 새로운 메로리를 차지하게 된다.
const me = {
name : "영희",
info : {
nickname : "공주",
mbti : "INTJ",
age : 22
}
}
const copyMe = {...me,info:{...me.info}}
console.log(copyMe)
// 결과
// copyMe = {
// name : "영희",
// info : {
// nickname : "공주",
// mbti : "INTJ",
// age : 22
// }
// }
// 깊은복사 확인
copyMe.info.nickname = "핑크공주"
console.log(copyMe.info.nickname) // "핑크공주"
console.log(me.info.nickname) // "공주"