let score = 80;
let copy = score;
console.log(copy); // 80
전에 쓴 글인 호이스팅에서도 언급했듯이, 변수명은 메모리 주소 이름이다.
그렇다면, score와 copy는 서로 다른 주소값을 갖고 있다는 걸 알 수 있다.
let score = 80;
let copy = score;
score = 100;
console.log(copy); // 80
console.log(score); // 100
객체(Object)를 전달하는 걸 뜻한다.
let person = {
name: 'Lee'
};
// 얕은 복사 (참조값만 복사)
let copy = person;
copy와 person은 같은 걸 알 수 있다.
이유를 설명하기에 앞서, 얕은 복사를 이해해야 한다.
- 얕은 복사란, 객체를 가리키고 있는 주소 참조값만 가져온다.
- 객체에 값을 추가하거나, 변화를 주면 해당 객체를 참조하고 있는 변수를 출력하면 변화된 값을 출력한다.
이와는 반대로, 깊은 복사가 존재한다.
이는 위에서 설명한 것과는 다르게 객체가 갖고 있는 주소가 있고, 복사된 객체가 갖고 있는 주소가 따로 또 존재한다.
JSON.stringify() & JSON.parse()가 하나의 방법이 된다.
값을 복사할때 다시한번 유념해 사용해야하는것을 깨닫고 갑니다.
깊은 복사 JSON.stringify() & JSON.parse() 언급 해주셨는데 예재 코드가 같이 있으면 더 좋을거 같습니다 .😃😃😃😃