본문 바로가기
코딩

[Java Script] 객체지향 프로그래밍 - 프로토타입

by Frontend 2022. 5. 25.

키워드 : .prototype, .__proto__, 클래스 & 인스턴스 & 프로토타입의 관계, 원형 객체


프로토타입(Prototype)

  • 프로토타입 객체의 줄임말. ‘원형 객체'를 의미.
  • JS는 프로토타입을 기반으로 상속을 구현 → 불필요한 중복 제거 가능 → 코드 재사용(불필요한 낭비 방지)
  • 생성자 함수에 메서드만 추가할 경우, 인스턴스가 생성될 때마다 동일한 매서드가 중복 생성된다.
  • 하지만 프로토타입을 추가하고 그 프로토타입에 메서드를 추가하면, 생성되는 모든 인스턴스는 부모 객체의 역할을 하는 프로토타입 객체로부터 메서드를 상속받는다(상속에 의한 매서드 공유).

 

__proto__ : 접근자 프로퍼티

  • 모든 객체는 [ [ Prototype ] ]이라는 내부 슬롯을 지니며, 여기에 프로토타입이 저장된다.
  • 이 때, __proto__를 통해 자신의 프로토타입에 간접 접근이 가능하다.
  • 객체가 직접 소유하는 프로퍼티가 아닌, Object.prototype의 프로퍼티다.