프로토타임 : 어떤 객체의 상위 객체 역할을 하는 객체로 하위 객체에게 자신의 프로퍼티와 메소드를 상속한다.
(js는 프로토타입을 기반으로 상속을 구현)
Prototype : 프로토타입 객체로 하위객체에서 자신의 프로퍼티와 메소드를 상속
prototype 프로퍼티 : 생성자 함수의 인스턴스 프로토타입을 가르키는 것
- 함수 객체가 가지고 있음 (생성자함수로 만들어 지지 않은 화살표함수, 축약메소드는 없다)
- 생성자 함수가 인스턴스의 프로토타입을 할당하기 위해 사용 (생성자함수가 가능한 객체가 소유하는 프로퍼티)
- constructor 만이 소유하는 프로퍼티
[[Prototye]] : 프로토타입 객체를 가르키는 내부slot, 모든 객체가 가진 내부slot으로 프로토타입 객체를 가리킨다.
proto는 프로토타입 객체에 접근하기 위해 사용하는 접근자 프로퍼티
__proto__ : 프로토타입에 접근하기 위한 접근자 프로퍼티 [[Prototype]] 내부 slot에 간접적으로 접근,
Object.prototype의 접근자 프로퍼티 모든 객체는 proto를 통해 자신의 프로토타입에 접근 가능하다.
Object.prototype :
모든 객체는 프로토타입 체인에 묶여있는데 js엔진은 객체의 프로퍼티에 접근할 때 해당 값이 없으면 __proto__ 접근자 프로퍼티가 가리키는 참조를 따라 자신의 부보 역할을 하는 객체의 프로토타입을 탐색함
프로토타입 객체
- 모든 객체가 가진 것
- 하위 객체에게 사위 객체의 공유 프로퍼티(메소드) 공유
- 상속의 개념을 구현
프로토타입 체인 : 객체의 프로퍼티나 메소드에 접근할 때 없으면 프로토타입 체인을 따라 프로토타입의 프로퍼티와 메소
드를 차례로 검색하게 됨. (JS엔진이 객체의 프로퍼티를 찾을때 해당 객체에 찾는 프로퍼티가 없으면,
접근자 proto를 따라서 부모의 프로토타입의 프로퍼티를 순차적으로 검색하는 구조)
'Front Dev' 카테고리의 다른 글
JS 모듈시스템 (ES모듈, CommonJS모듈) (0) | 2022.09.15 |
---|---|
front 개념정리 및 복기 (출처: 짐코딩 GYM CODING) (0) | 2022.09.05 |
유사한 name값 input 태그 활용 (feat. 체크박스응용) (0) | 2022.06.10 |
react.js 개념정리 (0) | 2021.03.04 |
jsp fmt 날짜형식으로 표출하기 (0) | 2019.10.17 |