JavaScriptのプロトタイプについての基本ガイド


  1. プロトタイプとは何か? JavaScriptでは、全てのオブジェクトはプロトタイプを持っています。プロトタイプは、そのオブジェクトの特定のプロパティやメソッドにアクセスするための参照です。オブジェクトがプロパティやメソッドにアクセスしようとすると、まず自身のプロトタイプを検索し、見つからなければプロトタイプのプロトタイプを探索します。これにより、オブジェクト間でプロパティやメソッドを共有することができます。

  2. プロトタイプの作成と使用 プロトタイプは、オブジェクトを作成する際に定義することができます。以下の例では、Personというコンストラクタ関数を定義し、そのプロトタイプにnameとsayHelloというメソッドを追加しています。

function Person(name) {
  this.name = name;
}
Person.prototype.sayHello = function() {
  console.log("Hello, my name is " + this.name);
}
var person1 = new Person("John");
person1.sayHello(); // 結果: "Hello, my name is John"
  1. プロトタイプの継承 プロトタイプを使用すると、オブジェクト間で継承関係を作成することができます。以下の例では、Teacherというコンストラクタ関数を定義し、Personのプロトタイプを継承しています。
function Teacher(name, subject) {
  Person.call(this, name);
  this.subject = subject;
}
Teacher.prototype = Object.create(Person.prototype);
Teacher.prototype.constructor = Teacher;
Teacher.prototype.teach = function() {
  console.log("I teach " + this.subject);
}
var teacher1 = new Teacher("Jane", "Math");
teacher1.sayHello(); // 結果: "Hello, my name is Jane"
teacher1.teach(); // 結果: "I teach Math"
  1. プロトタイプチェーンの理解 JavaScriptでは、オブジェクトのプロトタイプはチェーン状に連なっています。オブジェクトがプロパティやメソッドを呼び出す際に、自身のプロトタイプチェーンを順番に辿って探索します。もし見つからなければ、最終的にはObject.prototypeまで辿ります。

これらの基本的なガイドラインを理解することで、JavaScriptにおけるプロトタイプの使用方法を把握することができます。プロトタイプを活用することで、効率的で堅牢なオブジェクト指向プログラミングを実現することができます。