1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【JavaScript】プロトタイプとは

Posted at

プロトタイプとは

「プロトタイプ(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メソッドを利用できるようになります。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?