프로토타입 상속 패턴과 예제

프로토타입 상속은 객체 지향 프로그래밍에서 자주 사용되는 디자인 패턴 중 하나입니다. 이 패턴은 객체의 인스턴스를 복제하여 새로운 객체를 생성하는 방법을 제공합니다. 프로토타입 상속 패턴은 코드 중복을 줄이고 객체 생성에 대한 비용을 최소화하는 데 도움이 됩니다.

프로토타입 상속의 작동 방식

프로토타입 상속은 기존 객체의 프로토타입을 사용하여 새로운 객체를 생성하는 방식입니다. 새로운 객체는 기존 객체의 상태를 상속받아 동일한 프로퍼티와 메서드를 갖게 됩니다. 이 방법은 원래의 객체를 변경하지 않고 새로운 객체를 생성하는 것을 가능하게 합니다.

프로토타입 상속은 주로 프로토타입 체인을 이용하여 작동합니다. 각 객체는 prototype이라는 프로퍼티를 가지며, 이 프로퍼티는 해당 객체의 프로토타입을 가리킵니다. 새로운 객체를 생성할 때, 그 객체의 프로토타입은 부모 객체의 프로토타입을 가리킵니다. 이렇게 하면 새로운 객체는 부모 객체의 프로퍼티와 메서드를 상속받게 됩니다.

프로토타입 상속 예제

아래는 JavaScript에서 프로토타입 상속을 사용하는 예제입니다. Animal이라는 기본 객체를 정의하고, Dog라는 새로운 객체를 만들어 프로토타입으로 Animal을 상속받습니다.

// Animal 기본 객체 정의
function Animal(name) {
  this.name = name;
}

Animal.prototype.getName = function() {
  return this.name;
};

// Dog 객체 생성 및 프로토타입 상속
var dog = new Dog("Max");
dog.getName(); // "Max"

function Dog(name) {
  Animal.call(this, name);
}

Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;

위 예제에서 Dog 객체는 Animal 객체를 상속받습니다. Dog 객체는 Animal 객체의 프로퍼티인 name을 상속받고, getName() 메서드를 호출할 수 있습니다.

결론

프로토타입 상속은 객체 지향 프로그래밍에서 자주 사용되는 유용한 디자인 패턴입니다. 이 패턴을 통해 객체를 쉽게 복제하고 재사용할 수 있으며, 코드 중복을 줄여 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다.

#프로토타입상속 #자바스크립트


References