[javascript] 객체를 프로토타입으로 갖는 프로토타입 기반 객체지향 프로그래밍
프로토타입 기반 객체지향 프로그래밍은 많은 프로그래밍 언어에서 사용되는 중요한 개념 중 하나입니다. 이러한 스타일은 객체를 클래스가 아닌 프로토타입으로 처리하는 것이 특징입니다.
프로토타입 기반 객체지향 프로그래밍이란?
개념
프로토타입 기반 객체지향 프로그래밍은 프로토타입을 사용하여 객체를 생성하고 상속하는 방법을 차용한 프로그래밍 방식입니다.
장점
- 동적 변경: 프로그램이 실행 중에 객체의 구조를 변경할 수 있습니다.
- 확장성: 새로운 객체를 만들기 위해 이미 존재하는 객체를 재사용할 수 있습니다.
단점
- 복잡성: 상속 관계가 복잡해지면 코드를 이해하기 어려워질 수 있습니다.
- 오류 발생 가능성: 객체의 동적인 특성으로 인해 발생할 수 있는 오류에 대비해 신중한 접근이 필요합니다.
JavaScript에서의 프로토타입 기반 객체지향 프로그래밍
Prototype 객체
JavaScript에서 모든 객체는 프로토타입을 가집니다.
// 예시
let animal = {
eats: true
};
let rabbit = {
jumps: true
};
rabbit.__proto__ = animal;
alert(rabbit.eats); // true
Prototype 체인
객체에서 프로퍼티를 읽을 때, 해당하는 프로퍼티가 존재하지 않으면 자바스크립트는 [[Prototype]]에서 프로퍼티를 찾습니다.
// 예시
let animal = {
eats: true
};
let rabbit = {
jumps: true
};
rabbit.__proto__ = animal;
alert(rabbit.eats); // true
alert(rabbit.jumps); // true
마치며
프로토타입 기반 객체지향 프로그래밍은 자바스크립트를 비롯한 많은 프로그래밍 언어에서 중요한 개념입니다. JavaScript의 프로토타입을 이해하면 객체지향 프로그래밍에 대한 깊은 이해를 할 수 있습니다.
참고문헌:
- https://developer.mozilla.org/ko/docs/Web/JavaScript/Inheritance_and_the_prototype_chain