프로토타입 체이닝의 동작 원리 이해하기

프로토타입 체이닝은 자바스크립트의 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. 이해하려면 프로토타입과 프로토타입 체인에 대한 이해가 필요합니다.

프로토타입이란?

자바스크립트의 모든 객체는 하나 이상의 프로토타입과 연결되어 있습니다. 프로토타입은 다른 객체에서 상속되며, 해당 객체에 정의되지 않은 속성이나 메서드에 대한 참조 역할을 합니다. 객체의 __proto__ 프로퍼티를 통해 프로토타입에 접근할 수 있습니다.

프로토타입 체이닝

자바스크립트에서 객체의 속성과 메서드를 찾을 때, 먼저 해당 객체 자체에서 찾고, 없다면 프로토타입 체인을 따라 올라가며 계속 검색합니다. 이때 프로토타입 체인은 객체와 그의 프로토타입, 그리고 프로토타입의 프로토타입을 연결하여 형성됩니다.

이러한 프로토타입 체이닝은 찾고자 하는 속성이나 메서드를 찾을 때까지 계속 진행되며, 만약 최상위 프로토타입인 Object.prototype까지 도달해도 찾지 못하면 undefined를 반환합니다.

예시 코드

// 객체 생성
const person = {
  name: "John",
  age: 30,
};

// person 객체의 프로토타입 설정
const personPrototype = {
  greeting() {
    console.log(`Hello, my name is ${this.name}.`);
  },
};

person.__proto__ = personPrototype;

// 속성과 메서드 찾기
console.log(person.name); // 출력: John
person.greeting(); // 출력: Hello, my name is John.

결론

프로토타입 체이닝은 자바스크립트의 객체 지향 프로그래밍에서 중요한 개념으로, 상속과 유사한 동작을 구현할 수 있게 합니다. 이를 통해 코드의 재사용성을 높이고 객체 간의 관계를 유연하게 정의할 수 있습니다.


References: