[SEB FE 44] 프로토타입과 클래스

Heechang Jeong·2023년 3월 15일
0

CODE STATES

목록 보기
22/40
post-thumbnail

✍ 복습 자료

  • 프로토타입

    상속되는 속성과 메소드들은 각 객체가 아니라 객체의 생성자의 prototype이라는 속성에 정의되어 있다.

    JavaScript에서는 객체 인스턴스와 프로토타입 간에 연결이 구성되며 이 연결을 따라 프로토타입 체인을 타고 올라가며 속성과 메소드를 탐색한다.

    유전자 역할을 한다고 생각하자!

  1. 브라우저는 우선 person1 객체가 valueOf() 메소드를 가지고 있는지 체크한다.
  2. 없으므로 person1의 프로토타입 객체(Person() 생성자의 프로토타입)에 valueOf() 메소드가 있는지 체크한다.
  3. 여전히 없으므로 Person() 생성자의 프로토타입 객체의 프로토타입 객체(Object() 생성자의 프로토타입)가 valueOf() 메소드를 가지고 있는지 체크한다. 여기에 있으니 호출하며 끝난다.

  • OOP 패턴으로 구현한 Human 클래스

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; // true
Human.prototype === kimcoding.__proto__; // true
Human.prototype.sleep === kimcoding.sleep; // true




Reference

0개의 댓글