Javascript - prototype

노종열·2022년 7월 22일
0
post-thumbnail

prototype

  • 원형 객체를 의미함 (그냥 유전자라고 생각하자. 이해가 쉽다)
  • 자바스크립트는 '프로토타입 기반 언어'라 불림
  • 모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 프로토타입 객체(prototype object)를 가진다는 의미 -> 이를 이해하기 위해서는 프로토타입 체인을 공부해야 함!
  • 참고 영상
  • 참고 영상2
  • 참고 자료
<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; //둘 다 Human이므로 true
Human.prototype === kimcoding.__proto__; //둘 다 constructor과 sleep이 나오므로 true
Human.prototype.sleep === kimcoding.sleep; // 둘 다 sleep이 나오므로 true
  • 쉽게 정리하자면 prototype은 아래에 있는 것을 호출
  • .proto는 위에 있는 것을 호출

Array

  • array 역시 원리가 같음

프로토타입 체인

OOP 특성 중 상속을 JS에서 구현할 때에는 프로토타입 체인을 사용한다.
말 그대로 체인(사슬로 묶여 있다)로 받아들이면 이해가 쉽다.

  • Human이라는 클래스와 Student라는 클래스가 있다.
  • Student가 Human이라는 클래스에서 기본적인 속성과 메서드를 상속 받는다.
  • Student는 Human이 가지고 있는 메서드를 사용할 수 있다.
  • 이해가 안 된다면 밑의 사진을 보자.

DOM과 프로토타입

profile
FE개발자 지향 중

0개의 댓글