일단 내용 전반은 스파르타 코딩클럽 [JS 문법 종합반 ] 3주차 데이터 타입 부분 강의자료를 보자. (개인 pc에 저장함,링크는 생략)
아래와 같은 객체가 있다고 하자.
var obj = {
x: 3,
arr: [3, 4, 5],
}
메모리에서 obj.arr[1] 을 찾아보고자 한다. 어떻게 찾아 들어가야 할까?
큰 그림을 보자면 obj는 아래와 같은 방식으로 메모리에 할당된다.
특이한 점은 참조형 데이터는 메모리에서 별도의 공간을 갖게 된다는 점이다.
obj 는 참조형 데이터라서 별도의 메모리 영역을 갖게 된다. 아래 부분이다.
여기에 obj의 프로퍼티들이 들어가게 된다.
또 arr 역시 참조형 데이터라서 별도의 영역을 갖게 된다. 아래 부분이다.
여기서 3이라는 데이터가 기존에 변수 x를 위해 이미 @5001에 생성되어 있다는 점을 주목하자. 이미 있으므로 arr[0] 을 위해 따로 데이터 영역을 할당하지 않고 기존에 3을 넣어 생성된 @5001을 가리키고 있다.
'자바스크립트 리뷰' 카테고리의 다른 글
깊은 복사는 다른 객체를 생성해 낸다고 보아도 되겠다. [JS 문법 종합반 3주차 - 1] (0) | 2023.04.12 |
---|---|
얕은 복사의 문제점: 중첩된 객체를 복사하면 복사당한 객체는 복사로 생겨난 객체와 동시에 수정된다. [JS문법 종합반 3주차 - 1] (0) | 2023.04.12 |
메모리: 참조형 데이터는 가변하다. [ JS문법 종합반 3주차 -1] (0) | 2023.04.11 |
메모리: 변수와 상수 그리고 불변하다와 불변하지 않다. [ JS문법 종합반 3주차] (0) | 2023.04.11 |
new Set() 기본개념과 교집합 구하는 메소드 만들기 [JS문법 종합반 2주차 - 3] (0) | 2023.04.10 |