mason
mason-log.

mason

mason.

안녕하세요. mason 입니다.

javascript

Prototype.

프로토타입 체인, __proto__ vs prototype, 상속과 Object.create

JavaScript 객체는 프로토타입 객체를 통해 속성을 공유하며, 이 연결 고리를 프로토타입 체인이라고 부릅니다.

📘 핵심 개념

프로토타입 체인 프로퍼티 조회

용어설명
[[Prototype]]객체가 속성을 못 찾을 때 따라가는 내부 슬롯
__proto__[[Prototype]]에 접근하는 레거시 getter (비표준 관례)
prototype함수에만 존재. new로 만든 인스턴스의 [[Prototype]]이 가리키는 객체
프로토타입 체인null에 닿을 때까지 [[Prototype]]을 따라 올라감
function Person(name) {
  this.name = name;
}
Person.prototype.greet = function () {
  return `Hi, ${this.name}`;
};

const a = new Person('mason');
a.greet(); // Person.prototype에서 찾음

🔗 ES6 class와의 관계

  • class문법적 설탕(syntactic sugar) — 내부적으로는 여전히 프로토타입 기반.
  • extends는 서브클래스 prototype[[Prototype]]을 슈퍼클래스 prototype으로 연결.

🔗 참고 자료