Shallow Copy & Deep Copy

박선우·2023년 1월 10일
0

CS 스터디

목록 보기
11/53
post-thumbnail

☢️ Shallow Copy & Deep Copy

  • 깊은 복사(Deep Copy)는 '실제 값'을 새로운 메모리 공간에 복사하는 것을 의미하며,
  • 얕은 복사(Shallow Copy)는 '주소 값'을 복사한다는 의미입니다. 즉, 참조하고 있는 실제값은 같습니다.

1️⃣ 얕은복사(Shallow Copy)

const p1 = {
  age: 20,
  name: {
    first: 'Jessie',
    last: 'Jung'
  }
};

const p2 = p1

p2.age = 30

console.log(p1.age); // 30
console.log(p2.age); // 30
  • p2의 age를 변경하면 p1의 age가 변경 된다.

2️⃣ 깊은 복사(Deep Copy)

const p1 = {
	age: 20,
	name: {
		first: 'Jessie',
		last: 'Jung'
	},
	sayHello: () => {
		console.log('hello world!');
	},
};

const p2 = JSON.parse(JSON.stringify(p1));

p1.age = 30;
p1.name.first = 'justin';

console.log(p1); // { age: 30, name: { first: "Justin", last: "Jung" }, sayHello: f };
console.log(p2); // { age: 20, name: { first: "Jessie", last: "Jung" } };
  • JSON 객체의 메소드를 이용해서 Deep Copy를 할 수 있다.
  • p1의 객체안 key&value가 추가하더라도 p2에는 변화가 없다.

출처 : https://jess2.xyz/JavaScript/copy/

profile
코린이 열심히 배우자!

0개의 댓글