키워드 : .prototype, .__proto__, 클래스 & 인스턴스 & 프로토타입의 관계, 원형 객체
프로토타입(Prototype)
- 프로토타입 객체의 줄임말. ‘원형 객체'를 의미.
- JS는 프로토타입을 기반으로 상속을 구현 → 불필요한 중복 제거 가능 → 코드 재사용(불필요한 낭비 방지)
- 생성자 함수에 메서드만 추가할 경우, 인스턴스가 생성될 때마다 동일한 매서드가 중복 생성된다.
- 하지만 프로토타입을 추가하고 그 프로토타입에 메서드를 추가하면, 생성되는 모든 인스턴스는 부모 객체의 역할을 하는 프로토타입 객체로부터 메서드를 상속받는다(상속에 의한 매서드 공유).
__proto__ : 접근자 프로퍼티
- 모든 객체는 [ [ Prototype ] ]이라는 내부 슬롯을 지니며, 여기에 프로토타입이 저장된다.
- 이 때, __proto__를 통해 자신의 프로토타입에 간접 접근이 가능하다.
- 객체가 직접 소유하는 프로퍼티가 아닌, Object.prototype의 프로퍼티다.
'코딩' 카테고리의 다른 글
[JS / Node] 동기 vs 비동기 (0) | 2022.05.31 |
---|---|
[Java Script] 프로토타입 체인 (0) | 2022.05.26 |
[Java Script] 객체지향 프로그래밍 (0) | 2022.05.25 |
[Java Script] 객체지향 프로그래밍 (클래스와 인스턴스) (0) | 2022.05.25 |
[Java Script] 고차 함수 (0) | 2022.05.24 |