프로토타입 객체, 부모 객체

(2021-02-26)

프로토타입


1. 자바스크립트는, `프로토타입을 기반으로 상속을 구현하는 객체지향 언어` 임프로토타입 객체 (부모 객체)
     - 어떤 객체의 상위(부모) 객체의 역할을 하는 객체
     - 비록, 생성된 인스턴스에 아무것도 정의하지 않더라도, 
        . 원래부터/처음부터 사용할 수 있도록,
        . 생성된 인스턴스가 부모 프로토타입 객체를 묵시적으로 상속받음
     - 즉, 객체지향상속을 가능 하도록, 
        . 모든 객체는, 자신의 부모 역할을 하는, 프로토타입 객체를 가리키는,
        . 숨겨진 내부 프로퍼티 ([[Prototype]] 또는 __proto__)를 갖음

  ㅇ 프로토타입 체인
     - 자바스크립트의 모든 객체는,
        . 부모 객체(프로토타입 객체)와 프로토타입 체인으로 연결되고,
        . 그 내부에 프로퍼티 [[Prototype]] 또는 __proto__ 를 가지고 있게 됨
     - 즉, 어떤 객체의 [[Prototype]] 또는 __proto__ 프로퍼티는,
        . 상속해 준 부모 객체를 가리키고 있음

  ※ 따라서, 자바스크립트는 `프로토타입 기반의 객체지향 언어` 라고 불리움


2. 프로토타입 가져오기/설정하기

  ㅇ 특정 객체 obj에서 프로토타입 가져오기
     - obj.__proto__ (몇몇 웹브라우저에서 지원)
     - Object.getPrototypeOf(obj) (ECMAScript 5 이상 지원)

  ㅇ 설정하기
     - Object.setPrototypeOf(obj)


3. 프로토타입 메소드

  ㅇ 생성된 인스턴스에서 사용할 수 있는 메서드를 말함



Copyrightⓒ written by 차재복 (Cha Jae Bok)