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

조진표님의 프로필 이미지
조진표

작성한 질문수

코어 자바스크립트

1. 데이터 타입에서 기본형과 참조형의 차이에 대해 궁금한 점이 있습니다.

작성

·

182

0

책, 강의 보면서 혼자 이해해보았는데 제대로 이해하고 있는 것인지 궁금합니다.

참조형의 가변성을 설명하신 부분중에(코어 자바스크립트, 20p 불변객체 부분) '참조형 데이터의 가변은 데이터 자체가 아닌 내부 프로퍼티를 변경할 때만 성립합니다'이라고 말씀하셨는데, 여기서 궁금한 부분은 2가지가 있습니다.

1. '참조형 데이터의 가변은 데이터 자체가 ~' 

여기서 데이터란 말은 var obj; 에서 프로퍼티들의 집합을 표현(?)하기 위해 할당한 메모리 주소값을 의미하나요 ? 

예를 들어 var obj; 은 @1004의 식별자를 obj로 하고 데이터(이름 : obj, 값 @5006)일 때, 여기서 객체에 다른 객체를 할당하는 경우 즉, @5006 -> @5008로 변경되는데 여기서 [ @5006 ,@5008 ]이 말씀하신 데이터 인가요 ?

2 '~ 내부 프로퍼티를 변경할 때만 성립합니다'

obj.a 값이 3이고 아래와 같이 표현했을 때, @5003의 데이터 3은 기본형이기 때문에 '불변성'을 지니고, @8204(obj.a)의 값은 데이터로 '기본형'이 아닌 '주소값'을 가지기 때문에 변할 수 있다(그냥, 다른 것을 참조만 하면 되니깐...?). 이런 이유로 참조형은 데이터 자체가 변하는 경우가 아닌, 그 내부의 프로퍼티의 데이터가 변하는 경우에만 '가변'이라는 말이 성립하는건가요 ?

주소            8204                                               ~        |  5003

데이터     이름: a, 값 : @5003                           ~         |  3

답변 2

1

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

1. 넵

2. 넵

덧붙일 말이 없네요 ^^;;

0

조진표님의 프로필 이미지
조진표
질문자

답변 감사합니다..ㅎㅎ

조진표님의 프로필 이미지
조진표

작성한 질문수

질문하기