1. 자바스크립트는, `프로토타입을 기반으로 상속을 구현하는 객체지향 언어` 임
ㅇ 프로토타입 객체 (부모 객체)
- 어떤 객체의 상위(부모) 객체의 역할을 하는 객체
- 비록, 생성된 인스턴스에 아무것도 정의하지 않더라도,
. 원래부터/처음부터 사용할 수 있도록,
. 생성된 인스턴스가 부모 프로토타입 객체를 묵시적으로 상속받음
- 즉, 객체지향의 상속을 가능 하도록,
. 모든 객체는, 자신의 부모 역할을 하는, 프로토타입 객체를 가리키는,
. 숨겨진 내부 프로퍼티 ([[Prototype]] 또는 __proto__)를 갖음
ㅇ 프로토타입 체인
- 자바스크립트의 모든 객체는,
. 부모 객체(프로토타입 객체)와 프로토타입 체인으로 연결되고,
. 그 내부에 프로퍼티 [[Prototype]] 또는 __proto__ 를 가지고 있게 됨
- 즉, 어떤 객체의 [[Prototype]] 또는 __proto__ 프로퍼티는,
. 상속해 준 부모 객체를 가리키고 있음
※ 따라서, 자바스크립트는 `프로토타입 기반의 객체지향 언어` 라고 불리움
2. 프로토타입 가져오기/설정하기
ㅇ 특정 객체 obj에서 프로토타입 가져오기
- obj.__proto__ (몇몇 웹브라우저에서 지원)
- Object.getPrototypeOf(obj) (ECMAScript 5 이상 지원)
ㅇ 설정하기
- Object.setPrototypeOf(obj)
3. 프로토타입 메소드
ㅇ 생성된 인스턴스에서, 묵시적으로 상속 받아 사용할 수 있는 메서드를 말함