프로토타입 체인(Prototype Chain)은 JavaScript에서 객체 지향 프로그래밍을 구현하는 데 사용되는 중요한 개념 중 하나입니다.
이는 JavaScript의 모든 객체가 다른 객체에 연결된 "프로토타입"을 가지고 있고,
이를 통해 상속을 구현할 수 있다는 아이디어를 기반으로 합니다.
JavaScript에서 모든 객체는 다른 객체를 기반으로 생성됩니다.
이때 기반으로 삼는 객체를 "프로토타입"이라고 합니다.
객체가 가진 메서드나 속성을 사용할 때, JavaScript 엔진은 해당 객체에서 해당 메서드나 속성을 찾지 못하면
프로토타입 체인을 따라 올라가며 검색을 수행합니다.
프로토타입 체인은 객체 간에 상속 관계를 형성합니다.
즉, 하위 객체는 상위 객체의 메서드와 속성을 상속받을 수 있습니다.
이는 코드의 재사용성과 유지 보수성을 높여줍니다.
프로토타입 체인의 동작 방식은 다음과 같습니다:
- 객체를 생성할 때 JavaScript 엔진은 해당 객체의 프로토타입을 결정합니다. 이 프로토타입은 __proto__ 속성에 저장됩니다.
- 객체의 메서드나 속성을 사용하려고 할 때, 엔진은 먼저 해당 객체 자체에서 해당 메서드나 속성을 찾습니다.
- 찾지 못한 경우, 엔진은 객체의 프로토타입으로 이동하여 메서드나 속성을 찾습니다.
- 만약 프로토타입에서도 찾지 못한 경우, 더 상위의 프로토타입으로 이동하여 검색을 반복합니다. 이 과정은 프로토타입 체인의 끝에 도달할 때까지 계속됩니다.
- 프로토타입 체인의 끝에 도달하고도 찾지 못한 경우, undefined를 반환합니다.
이러한 방식으로 JavaScript는 상속을 구현하고 객체 간에 코드를 공유할 수 있도록 합니다. 이것이 JavaScript가 프로토타입 기반의 객체 지향 프로그래밍 언어라고 불리는 이유 중 하나입니다.
'javascript' 카테고리의 다른 글
Math 내장 객체 (0) | 2024.05.03 |
---|---|
for...in (0) | 2024.05.02 |
RegExp과 정규표현식 (0) | 2024.05.02 |
join() (0) | 2024.05.02 |
defer (0) | 2024.05.01 |