프로토타입과 클래스

YEN J·2022년 9월 21일
0

code states

목록 보기
16/43

프로토타입이란

  • 모델의 청사진(클래스)을 만들 때 쓰는 원형 객체
  • JavaScript는 프로토타입 기반 언어

__proto__

  • 특정 객체의 프로토타입 객체

prototype

  • 상속 시키려는 멤버(상속 받는 멤버)들이 정의된 객체
  • 프로토타입 체인을 통해 상속하고자 하는 속성과 메소드를 담아두는 버킷으로 사용
    -> 객체 내부에 인스턴스가 사용할 메서드 저장
  • 상속되는 속성과 메서드는 각 객체가 아닌 객체의 생성자의 prototype이라는 속성에 정의
  • 프로토타입에는 다양한 메서드 존재

클래스, 인스턴스, 프로토타입의 관계

  • new 연산자로 생성자 함수를 호출해 새로운 인스턴스를 변수 person1에 할당
  • 인스턴스의 __proto__(프로토타입 체인에 의해 생략)가 생성자의 prototype 속성을 참조 -> person1.__proto__.greeting() 이 아닌 person1.greeting() 으로 prototype에 있는 메소드에 접근 가능
  • 인스턴스는 생성자 함수의 prototype에 있는 속성이나 메소드에 접근 가능
  • 생성자 함수의 속성인 prototype 객체 내부에 있는 constructor 속성
    -> 생성자 함수 참조, 이 속성을 통해 인스턴스의 원형을 알 수 있음

0개의 댓글