[javascript] 프로토타입 객체와 인스턴스의 관계

자바스크립트에서, 모든 객체는 프로토타입 객체에 대한 참조를 가지고 있습니다. 이 프로토타입 객체는 객체를 생성할 때 사용되는 원형입니다. 자바스크립트에서는 모든 객체가 다른 객체를 프로토타입으로 가지고 있으며, 이를 통해 다른 객체의 속성과 메서드를 상속할 수 있습니다.

프로토타입 객체 생성

프로토타입 객체는 다양한 방법으로 생성될 수 있습니다.

1. 리터럴 방식으로 생성

let prototypeObj = {
    // 프로토타입 객체의 속성과 메서드 정의
    method1: function() {
        // 메서드 로직
    },
    // ...
};

2. 생성자 함수로 생성

function PrototypeObj() {
    // 프로토타입 객체의 속성과 메서드 정의
    this.method1 = function() {
        // 메서드 로직
    };
    // ...
}

프로토타입 객체와 인스턴스의 관계

프로토타입 객체로부터 인스턴스(또는 객체)를 생성하는 것은 자바스크립트에서 일반적인 패턴입니다. 이때, 생성된 인스턴스는 프로토타입 객체의 속성과 메서드를 상속받습니다.

프로토타입을 활용한 인스턴스 생성

let instanceObj = Object.create(prototypeObj);
// 또는
let instanceObj = new PrototypeObj();

프로토타입 체인

모든 객체는 자신의 프로토타입 객체를 가리키는 내부 프로퍼티 __proto__를 가지고 있습니다. 이를 통해 다른 객체의 프로토타입 체인을 따라 상위 프로토타입 객체의 속성과 메서드에 접근할 수 있습니다.

결론

프로토타입 객체와 인스턴스 간의 관계는 자바스크립트에서 객체 지향 프로그래밍의 기본 개념 중 하나입니다. 이를 활용하여 객체 간 상속을 구현하고 코드의 재사용성을 향상시킬 수 있습니다.

자세한 내용은 MDN web docs를 참고하세요.