프로토타입

이성민·2023년 5월 11일
0

JavaScript는 프로토타입(Prototype) 기반 언어. 프로토타입은 원형 객체를 의미
모든 객체들이 메소드와 속성들을 상속 받기 위한 템플릿으로써 프로토타입 객체(prototype object)를 가진다는 의미
상위 프로토타입 객체에서 메소드, 속성을 상속받고, 또 상위 ~,또또 상위~ 이를 프로토타입 체인(prototype chain)이라 부르며 다른 객체에 정의된 메소드와 속성을 한 객체에서 사용할 수 있도록 하는 근간

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

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

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



흔히 쓰는 배열 역시 원리가 동일. 배열(arr)은 Array 클래스의 인스턴스이며, 프로토타입에는 다양한 메서드가 존재.

__proto__

를 이용하면 부모 클래스의 프로토타입, 혹은 '부모의 부모 클래스'의 프로토타입을 탐색할 수 있다.

function Circle() {}
const shape = {}
const circle = new Circle()

// Set the object prototype
// DEPRECATED. 예시용일 뿐입니다. 실제 코드에서는 이렇게 하지 마세요.
shape.__proto__ = circle

proto

profile
도전자

0개의 댓글

관련 채용 정보