참조타입이 특정 값에 대한 좌표값을 저장하는 데이터 타입이라는 부분은 이해하였고
함수 파라미터로 특정 객체를 받아와서 객체 내부 변수를 제어하려면
function change1(obj) {
obj.name = 'Lee';
}
방식으로 접근해야한다는 것도 이해했습니다.
하지만 함수 내부에서 객체를 새로 생성하는 방식에 대해서 조금 헷갈립니다.
function change2(obj){
obj = { name : 'park' };
}
이러한 방식으로 파라미터 변수에 새로운 좌표값을 재할당하면
let name1 = { name : 'Kim' };
change2(name1);
console.log(name1) // { name : 'Kim' };
이처럼 name1 객체는 건드리지 않은 채로 새로운 obj라는 객체를 생성한다는 말로 이해했는데,
그렇다면 얘는 스코프 문제로 이해해도 괜찮은 건지 모르겠습니다.
예를 들어서
let a = {
val1 : 11,
};
function test() {
let a = {
val1 : 11,
};
}
여기서
a라는 객체와 test라는 함수 내부에서만 사용되는 a 라는 객체가 별도의 객체라고 볼 수 있다면,
앞선 change2 함수에서 obj라는 파라미터 변수를 새로 선언하고 초기화 시킨 것 또한 같은 의미로 이해할 수 있는건가요?
그리고 별개로 change2 함수 내부에서 선언한 obj 객체에 대한 접근을 어떻게 해야할지 한참을 굴려봐도 모르겠습니다..