[[Prototype]]
이라는 내부 슬롯을 가지며 이 내부 슬롯의 값은 프로토타입의 참조(null인 경우도 있다)이다. [[Prototype]]
에 저장된다. [[Prototype]]
내부 슬롯에는 직접 접근할 수 없지만 위 그림처럼 __proto__
접근자 프로퍼티를 통해 자신의 프로토타입, 즉 자신의 [[Prototype]]
내부 슬롯이 가리키는 프로토타입에 간접적으로 접근할 수 있다.
프로토타입은 자신의 constructor 프로퍼티를 통해 생성자 함수에 접근할 수 있고, 생성자 함수는 자신의 prototype을 통해 프로토타입에 접근할 수 있다.
__porto__
접근자 프로퍼티접근자 프로퍼티는 자체적으로 값([[Value]]
프로퍼티 어트리뷰트)를 갖지 않고 다른 데이터 프로퍼티의 값을 읽거나 저장할 때 사용하는 접근자 함수(Accessor Function)
즉 [[Get]]
, [[Set]]
프로퍼티 어트리뷰트로 구성된 프로퍼티이다.
__proto__
접근자 프로퍼티를 통해 프로토타입에 접근하면 내부적으로 __proto__
접근자 프로퍼티의 getter 함수인 [[Get]]
이 호출된다.
__proto__
접근자 프로퍼티를 통해 새로운 프로토타입을 할당하면 __proto__
접근자 프로퍼티의 setter 함수인 [[Set]]
이 호출된다.
[[Prototype]]
내부 슬록의 참조를 따라 자신의 부모 역할을 하는 프로토타입 프로퍼티를 순차적으로 검색한다. 이를 프로토타입 체인이
라고 한다. [[Prototype]]
내부 슬롯에 바인딩되어 있는 프로토타입으로 이동하여 프로퍼티를 검색한다.[[Prototype]]
내부 슬롯에 바인딩되어 있는 프로토타입으로 이동하여 프로퍼티를 검색한다.[[Prototype]]
내부 슬롯의 값은 null입니다.undefined
를 반환합니다.