✅ 프로토타입(Prototype)이란?


✅ 핵심 개념 요약

용어 설명
prototype 함수(생성자 함수)의 속성. 인스턴스가 공유할 메서드/속성 저장소
__proto__ 생성된 객체(인스턴스)의 내부 참조. 생성자의 prototype을 가리킴
인스턴스 new 키워드로 생성된 객체. __proto__로 prototype에 연결됨

✅ 흐름 요약

  1. 생성자 함수 → .prototype 객체에 메서드/속성 정의
  2. 인스턴스를 만들면, 자동으로 __proto__가 그 prototype을 가리킴
  3. 인스턴스에서 메서드 호출 시, 없으면 __proto__를 따라 올라가서 찾음

✅ 예제 코드로 이해하기

function Person(name) {
  this.name = name;
}

// prototype에 메서드 정의
Person.prototype.sayHello = function() {
  console.log(`안녕, 나는 ${this.name}`);
};

// 인스턴스 생성
const p1 = new Person("철수");

p1.sayHello(); // 안녕, 나는 철수

🔍 내부 구조 설명


✅ 정리 문장

자바스크립트는 프로토타입 기반 언어로,
객체는 생성자 함수의 **prototype을 참조하는 `__proto__`를 통해 메서드와 속성을 상속**받습니다.
`prototype` 객체는 인스턴스들이 **공유**하는 메서드/속성을 담고 있고,
`__proto__`는 이 prototype을 참조하는 **숨겨진 링크(Prototype chain)**입니다.