프로토타입(prototype)

Minseo Choi·2023년 5월 11일
0

자바스크립트는 프로토타입(prototype) 기반 언어이다. 여기서 프로토타입은 원형 객체를 의미한다. 모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써
프로토타입 객체를 가진다는 의미.

class Human {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }

  sleep() {
    console.log(`${this.name}은 잠에 들었습니다`);
  }
}

let kimcoding = new Human('김코딩', 30);

Human.prototype.constructor === Human; 
Human.prototype === kimcoding.__proto__; 
Human.prototype.sleep === kimcoding.sleep;
>> true;

Human이란 클래스를 구현했을 때, 아래 코드들은 true가 나온다.
위 이미지는 Human이라는 클래스와 인스턴스, 프로토타입의 관계이다.

__proto__ -> 접근하고자 하는 객체의 내부 속성인 [prototype]를 노출하는 접근자 속성이다.
.prototype -> 함수 객체가 생성자로 사용될 때 이 함수를 통해 생성될 객체의 부모 역할을 하는 객체(프로토타입)을 가리킨다.
profile
개발자 되기

0개의 댓글