강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

릴롱궤님의 프로필 이미지
릴롱궤

작성한 질문수

코어 자바스크립트

10분 즘에 나오는 메모리 할당에 대해서 궁금한게 있습니다.

작성

·

287

0

obj.x 가 3으로 5003번 메모리에 할당되어 있고

obj.arr이 새로운 메모리를 사용하는것이 아니라 obj.x 가 할당된 5003번을 그대로 참조하게 될때

obj.x를 3에서 5로 바꿔서 할당하게 되면 (obj.x=5;) arr도 참조값이 같이 바뀌어서 console.log(obj.arr)할때 [5,4]가 되어야 할것같은데 그렇게 되지 않고 이전과 동일하게 [3, 4] 로 콘솔에 출력되더라구요 그렇다면

obj.x=5 라고 새로 할당하게 되면 5007쯤 되는 메모리에 다시 5라는 값을 넣어주고 7103의 값을 5007로 바꿔주게 되는 건가요? 

답변 1

1

정재남님의 프로필 이미지
정재남
지식공유자

맞습니다.

obj.x = 5 라는 명령은
5003번에 저장된 숫자 3 대신 5를 덮어씌우는 게 아니라
새로운 메모리 공간을 확보하여(5007) 5를 대입하고 이를 할당합니다.

그러니까 obj.x는 5007을 바라보게 되고,
obj.arr[0]은 그대로 5003을 바라보고 있는 상태입니다.

릴롱궤님의 프로필 이미지
릴롱궤

작성한 질문수

질문하기