[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를 참고하세요.