내부 슬롯, 내부 메서드

 

자바 엔진 알고리즘을 설명하기 위한 의사 슬롯과 의사 메서드이다.

둘다 내부 로직에 관련되어 있어서 직접 접근은 안되고 간접 접근은 가능하다.

[[ ]]으로 나타낸다.

 

 

내부슬롯은 객체를 만들면 객체 안에 [[Prototype]]으로 자동으로 생성된다.

간접접근으로 객체이름.__proto__ 로 접근할 수 있다.

 

어트리뷰트

 

프로퍼티의 상태를 나타내는 프로퍼티로 내부슬롯에 해당된다.

구성은 값, 값의 변경 여부, 열거가능여부, 재정의 가능 여부를 나타낸다.

역시나 직접접근은 안되고 Object.getOwnPropertyDescriptor(객체이름, '키') 로 표현한다.

참조할 객체와 키값을 받으면 디스크립터 객체를 반환한다.

 

프로퍼티의 종류

 

데이터 프로퍼티 - 일반적인 키와 값으로 구성된 우리가 아는 프로퍼티다 

 접근자 어트리뷰트 - 값이 아닌 다른 프로퍼티에 접근하는 접근자 함수로 구성된 프로퍼티 

어트리뷰트도 데이터 프로퍼티랑 다르게 프로퍼티에 읽거나 저장할 때 호출되는 get과  set,

열거가능 여부, 재정의가능 여부로 구성되어있다.

 

Object.defineProperty 매서드를 사용하면 프로퍼티의 어트리뷰트를 정의할 수 있다.

 

객체 변경 방지

 

객체확장금지 - 프로퍼티 추가가 금지되고 나머지는 어트리뷰트는 true다.

 

객체 밀봉 - 프로퍼티 추가, 삭제, 재정의가 금지되고 나머지는 true다.

 

객체 동결 - 읽기 외엔 모두 금지된다. 

+ Recent posts