[javascript] 객체를 프로토타입으로 갖는 프로토타입 기반 객체지향 프로그래밍

프로토타입 기반 객체지향 프로그래밍은 많은 프로그래밍 언어에서 사용되는 중요한 개념 중 하나입니다. 이러한 스타일은 객체를 클래스가 아닌 프로토타입으로 처리하는 것이 특징입니다.

프로토타입 기반 객체지향 프로그래밍이란?

개념

프로토타입 기반 객체지향 프로그래밍은 프로토타입을 사용하여 객체를 생성하고 상속하는 방법을 차용한 프로그래밍 방식입니다.

장점

  1. 동적 변경: 프로그램이 실행 중에 객체의 구조를 변경할 수 있습니다.
  2. 확장성: 새로운 객체를 만들기 위해 이미 존재하는 객체를 재사용할 수 있습니다.

단점

  1. 복잡성: 상속 관계가 복잡해지면 코드를 이해하기 어려워질 수 있습니다.
  2. 오류 발생 가능성: 객체의 동적인 특성으로 인해 발생할 수 있는 오류에 대비해 신중한 접근이 필요합니다.

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의 프로토타입을 이해하면 객체지향 프로그래밍에 대한 깊은 이해를 할 수 있습니다.

참고문헌: