값을 저장하는 방식에 관한 이야기입니다. 프로그래밍 언어들이 값을 변수에 저장하는 방식은 크게 2가지가 있습니다.
1번은 어떠한 값을 메모리 공간에 직접 넣고 변수를 할당하는 방법이고, 2번은 그 값을 저장한 메모리의 주소를 변수에 할당하는 방법입니다.
참조에 의한 전달- pass by Reference
개체에 할당된 변수를 인수로 함수에 전달할 때 컴퓨터는 매개 변수 이름을 해당 개체를 고정하는 메모리의 공간을 가리키는 것으로 해석합니다.
따라서 개체 속성을 변경하는 기능은 개체가 상수 변수에 할당된 경우에도 실제로 개체를 영구적으로 변형시킵니다.
pass by Value와 pass by Reference 의 비교
let number = 15;
let value = number;
value의 값도 number와 마찬가지로 20이지만, 값만 전달받은 것이기 때문에 number와 value는 별개입니다.
let obj = {number : '15'};
let value = obj;
value에 객체 obj를 할당한 경우, 그 값의 주소를 전달받은 것이기 때문에 value에서 number의 값을 수정하면 obj에도 적용이 됩니다.