Copy of Value - 값에 의한 전달
Copy of Reference - 참조에 의한 전달
- 기본적으로 모든 primitive 값은 값에 의한 전달이다.(function, object, array 빼고 나머지)
- 객체는 참조에 의한 전달이다
const soo1 = {
name: 'sooyoung',
age: 27
}
const soo2 = soo1;
const soo3 = {
name: 'sooyoung',
age: 27
}
const soo4 = {
...soo3,
}
console.log(soo1 === soo2); // true
console.log(soo1 === soo3); // false
console.log(soo2 === soo3); // false
console.log(soo3 === soo4); // false
- soo2는 soo1의 주소를 참조한 것이기 때문에 둘은 같은 값으로 판별
- soo3는 새로운 주소에서 만들어진 객체이기 때문에 다른 값으로 판별
- soo4, spread operator는 값을 참조한 것이기 때문에 새로운 메모리 주소를 가리키니 다른 값으로 판별