그림 2 · 데이터 프로퍼티 vs 접근자 프로퍼티
앞 두 칸만 갈리고, 뒤 두 칸(enumerable · configurable)은 양쪽이 똑같이 가진다.
데이터 프로퍼티
값을 저장한다
value
값 그 자체
writable
값을 바꿀 수 있나
공통 꼬리표
enumerable
목록에 나오나
configurable
잠겼나
접근자 프로퍼티
동작으로 가로챈다
get
읽을 때 실행할 함수
set
쓸 때 실행할 함수
공통 꼬리표
enumerable
목록에 나오나
configurable
잠겼나
왜 둘은 합쳐질 수 없을까?
같은 프로퍼티가
value
(저장된 값)와
get
(계산하는 함수)을 동시에 가질 수는 없어요.
obj.x
를 읽을 때 저장된 값을 줄지, 함수를 실행할지는
둘 중 하나
여야 하니까요.