プロトタイプとは
「プロトタイプ(prototype)」とは、オブジェクト指向プログラミングにおいて、あるオブジェクトが他のオブジェクトから継承する機能やプロパティを定義するための仕組みです。
例えば、以下のコードでは、Animalというオブジェクトが定義され、そのプロトタイプとしてAnimal.prototypeが設定されています。そして、DogというオブジェクトがAnimalを継承し、新しいプロパティやメソッドを追加しています。
// Animalオブジェクトの定義
function Animal(name) {
this.name = name;
}
// Animalオブジェクトのプロトタイプにspeakメソッドを追加
Animal.prototype.speak = function() {
console.log(this.name + ' makes a noise.');
};
// Dogオブジェクトの定義(Animalを継承)
function Dog(name) {
Animal.call(this, name);
}
// DogオブジェクトがAnimalオブジェクトを継承
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
// Dogオブジェクトのプロトタイプにbarkメソッドを追加
Dog.prototype.bark = function() {
console.log(this.name + ' barks.');
};
// 使用例
const dog = new Dog('Max');
dog.speak(); // Max makes a noise.
dog.bark(); // Max barks.
JavaScriptでは、プロトタイプを介してメソッドやプロパティをオブジェクトに追加することが一般的です。これにより、すべてのオブジェクトのインスタンスが同じメソッドやプロパティを共有できます。そのため、Animal.prototype.speakを定義すると、Animalオブジェクトのインスタンスだけでなく、Dogオブジェクトのインスタンスもspeakメソッドを利用できるようになります。