프로토타임 : 어떤 객체의 상위 객체 역할을 하는 객체로 하위 객체에게 자신의 프로퍼티와 메소드를 상속한다.

                      (js는 프로토타입을 기반으로 상속을 구현)

 

Prototype : 프로토타입 객체로 하위객체에서 자신의 프로퍼티와 메소드를 상속

prototype 프로퍼티 : 생성자 함수의 인스턴스 프로토타입을 가르키는 것

 - 함수 객체가 가지고 있음 (생성자함수로 만들어 지지 않은 화살표함수, 축약메소드는 없다)

 - 생성자 함수가 인스턴스의 프로토타입을 할당하기 위해 사용 (생성자함수가 가능한 객체가 소유하는 프로퍼티)

 - constructor 만이 소유하는 프로퍼티

 

 

[[Prototye]] : 프로토타입 객체를 가르키는 내부slot, 모든 객체가 가진 내부slot으로 프로토타입 객체를 가리킨다.

                    proto는 프로토타입 객체에 접근하기 위해 사용하는 접근자 프로퍼티

 

__proto__ : 프로토타입에 접근하기 위한 접근자 프로퍼티 [[Prototype]] 내부 slot에 간접적으로 접근,

                   Object.prototype의 접근자 프로퍼티 모든 객체는 proto를 통해 자신의 프로토타입에 접근 가능하다.

 

Object.prototype :

모든 객체는 프로토타입 체인에 묶여있는데 js엔진은 객체의 프로퍼티에 접근할 때 해당 값이 없으면 __proto__ 접근자 프로퍼티가 가리키는 참조를 따라 자신의 부보 역할을 하는 객체의 프로토타입을 탐색함

 

프로토타입 객체

- 모든 객체가 가진 것

- 하위 객체에게 사위 객체의 공유 프로퍼티(메소드) 공유

- 상속의 개념을 구현

 

프로토타입 체인 : 객체의 프로퍼티나 메소드에 접근할 때 없으면 프로토타입 체인을 따라 프로토타입의 프로퍼티와 메소

                            드를 차례로 검색하게 됨. (JS엔진이 객체의 프로퍼티를 찾을때 해당 객체에 찾는 프로퍼티가 없으면,

                            접근자 proto를 따라서 부모의 프로토타입의 프로퍼티를 순차적으로 검색하는 구조)

 

 

 

출처 : https://rrecoder.tistory.com/176?category=947948

+ Recent posts