얕은복사, 깊은복사

.·2022년 7월 1일
0

blog

목록 보기
34/52

[1] 얕은 복사

  • 얕은복사란 메모리에서 데이터가 위치한 주소를 참조하는 방식이다.

  • 처음에 코딩을 배울 때 x = y 와 같이하게되면 x라는 변수에 y값이 들어가는 것을 해보았을 것입니다. 이때 복사되는 방식을 얕은복사라고 합니다.

  • x에 y값을 넣어주었지만 x의 값을 변경하게 되면 y의 값도 변경이 되는 것을 볼 수 있습니다.

  • 이처럼 x와 y의 변수가 각각 메모리에 저장이 되는것이 아니라 이름만 다르고 저장된 데이터 1개만을 가리키는 것입니다.

[2] 깊은 복사

  • 깊은 복사는 주소값을 공유하는 것이 아닌 값만을 가져와서 기존의 데이터와는 다른 새로운 데이터를 만드는 것이다.

  • 이거를 원래 해결하는 방법은 재귀함수를 이용해서 깊은 복사를 구현하는 방법이 있다고 한다.

(1) JSON.stringfy, JSON.parse

객체를 JSON형태의 string으로 변경을 하고 다시 그것을 JSON 형태로 만들어서 사용을 하게되면 완전히 다른 객체로 만드는 방법이다.

const obj1 = {test: 1};
const obj2 = JSON.parse(JSON.stringify(obj1));

obj1 === obj2 // false

(2) Object.assign()

단 1depth에만 적용이 된다

const obj1 = {test: 1};
const obj2 = Object.assign({},obj1);

obj2.test = 2;

console.log(obj1 === obj2) // false 

0개의 댓글