[javascript] 자바스크립트의 프로토타입(Prototype) 개념과 상속 방법

자바스크립트는 프로토타입 기반의 객체지향 언어로, 프로토타입(Prototype) 개념을 기반으로 객체지향 프로그래밍을 지원합니다. 이번 글에서는 자바스크립트의 프로토타입 개념과 상속 방법에 대해 알아보겠습니다.

프로토타입(Prototype)이란?

자바스크립트에서 프로토타입은 모든 객체의 원형이 됩니다. 모든 객체는 다른 객체를 참조하는데, 이를 프로토타입 체인이라고 합니다. 객체는 자신의 프로토타입 객체를 참조하고, 이 프로토타입 객체 또한 자신의 프로토타입을 참조하는 식으로 이어집니다.

상속 방법

자바스크립트에서 상속은 프로토타입 체인을 활용하여 구현됩니다. 상속을 받고자 하는 객체의 프로토타입으로 다른 객체를 지정함으로써 상속을 구현할 수 있습니다. 아래는 프로토타입 체인을 사용한 상속의 예시입니다.

function Animal(name) {
  this.name = name;
}

Animal.prototype.speak = function() {
  console.log(this.name + ' makes a noise.');
};

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

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

Dog.prototype.speak = function() {
  console.log(this.name + ' barks.');
};

let dog = new Dog('Buddy');
dog.speak();  // 출력: Buddy barks.

위의 예시에서 Dog 객체는 Animal 객체를 상속받아 speak 메서드를 재정의하고 있습니다. Object.create 메서드를 사용하여 Animal.prototypeDog.prototype의 프로토타입으로 지정하고, Dog.prototype.constructorDog로 설정함으로써 정상적인 상속이 이루어집니다.

마치며

프로토타입 기반의 상속은 자바스크립트에서 객체지향 프로그래밍을 구현하는 강력한 도구입니다. 프로토타입 체인을 활용하여 간편하게 상속을 구현할 수 있으며, 객체지향 프로그래밍을 쉽게 다룰 수 있는 장점을 가지고 있습니다.