[JavaScript] 얕은 복사와 깊은 복사

이스리·2023년 6월 12일
0

javaScript

목록 보기
5/6

요약

  • 얕은 복사(Shallow copy)
    복사하려는 객체의 참조값(메모리의 주소값)을 복사
  • 깊은 복사(Deep copy)
    복사하려는 객체의 원시값(복사하려는 객체 메모리 자체)을 복사

얕은 복사

얕은 복사는 값의 주소값인 참조값을 복사하여 할당하는 것이다.
얕은 복사는 메모리의 주소를 복사하는 것이기 때문에 복사하여 할당한 변수의 값을 재할당 하면 원래의 값도 같이 변경된다.

const person = {
	name: '홍길동',
    age: 20
}
const name = person // 얕은 복사 -> 참조값 복사
name.age = 30;

console.log(person.age); //30

깊은 복사

깊은 복사를 복사하려는 데이터의 실제 값을 복사하는 것이다.
그렇기 때문에 복사를 한 값과 원래의 실제 값과는 주소가 각각 따로이기 때문에 깊은 복사를 한 값은 완전 새로운 데이터이다.

const a = 1;
const b = a;

console.log(a==b);

참조값의 깊은 복사를 하는 방법은 여러가지 있다.
object.assign(), 스프레드, 재귀함수 등등

profile
두 번 찾기 귀찮아서 만든 블로그

0개의 댓글