반응형
SMALL
프로토타입 체인(Prototype Chain)은 JavaScript의 객체 지향 프로그래밍에서 중요한 개념 중 하나로, 객체 간의 상속 및 속성 및 메서드 검색을 위한 메커니즘을 설명합니다. 이 개념은 JavaScript의 객체 지향 특성을 이해하는 데 중요합니다.
프로토타입 체인은 다음과 같은 핵심 개념으로 구성됩니다:
- 프로토타입(Prototype): JavaScript 객체는 프로토타입을 가질 수 있습니다. 프로토타입은 다른 객체로부터 속성과 메서드를 상속받을 수 있도록 하는 객체입니다.
- 프로토타입 체인(Prototype Chain): JavaScript에서 객체는 프로토타입 체인을 따라 상위 프로토타입 객체의 속성과 메서드를 검색할 수 있습니다. 객체가 어떤 속성 또는 메서드를 찾을 때, 현재 객체의 프로토타입을 확인하고, 그 프로토타입의 프로토타입을 검색하는 식으로 상위로 계속 올라가며 검색합니다. 이 과정을 반복하면서 상위 프로토타입 객체의 속성과 메서드를 찾거나, 최상위 프로토타입인 **Object.prototype**에 도달하면 검색을 종료합니다.
- __proto__와 Object.getPrototypeOf(): JavaScript에서 객체는 __proto__ 프로퍼티를 통해 직접적으로 연결된 프로토타입을 가리킬 수 있으며, Object.getPrototypeOf(obj) 함수를 사용하여 객체의 프로토타입을 가져올 수도 있습니다.
프로토타입 체인은 객체 간의 상속을 구현하기 위해 사용됩니다. 예를 들어, 생성자 함수와 프로토타입을 사용하여 객체를 생성하고, 이 객체들은 해당 생성자 함수의 프로토타입을 상속받게 됩니다. 이를 통해 코드의 재사용성을 높이고 객체 간에 공통 메서드와 속성을 공유할 수 있습니다.
예제:
// 생성자 함수
function Person(name) {
this.name = name;
}
// 프로토타입 메서드 추가
Person.prototype.sayHello = function() {
console.log(`Hello, my name is ${this.name}`);
};
// 객체 생성
const person1 = new Person("Alice");
const person2 = new Person("Bob");
// 프로토타입 체인을 통한 메서드 호출
person1.sayHello(); // "Hello, my name is Alice"
person2.sayHello(); // "Hello, my name is Bob"
위의 코드에서 Person 생성자 함수의 인스턴스인 **person1**과 **person2**는 **Person.prototype**을 프로토타입 체인을 통해 상속받아 sayHello 메서드를 호출할 수 있습니다. 이러한 방식으로 프로토타입 체인은 객체 간의 상속과 코드의 재사용을 지원합니다.
728x90
반응형
LIST
'javascript > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
생성자함수 this (0) | 2024.02.02 |
---|---|
전역객체 (0) | 2024.02.02 |
화살표 함수가 논컨스트럭터 구조인 이유와 반례 (0) | 2024.02.02 |
const 키워드의 객체 (0) | 2024.02.02 |
호이스팅 (0) | 2024.02.02 |