1.2 プロトタイプベースとは
JavaScript 特有の性質として「プロトタイプベース」という仕組みがあります。これは、あるオブジェクトが他のオブジェクトのプロパティやメソッドを「引き継ぐ(継承する)」ことができる仕組みです。
以降は、後の章でも一つ一つ詳しく解説していきますので、今、ここで理解する必要はありません。
1. オブジェクト間の直接継承
あるオブジェクトが他のオブジェクト(実体)のプロパティやメソッドを直接「引き継ぐ(継承する)」仕組みです。
2. プロトタイプ(見本)の存在
すべてのオブジェクトは、自身の「見本」となるオブジェクト(プロトタイプ)を持っており、そこに共通のメソッドを持たせることができます。
3. プロトタイプチェーン
オブジェクトのプロパティやメソッドを呼び出す際、自分自身に定義されていない場合は、この「見本」をたどって機能を探しに行く仕組みが働きます。
4. 動的で柔軟な仕組み
Java は「クラス(設計図)」から「インスタンス(実体)」を作りますが、JavaScript のプロトタイプは実体(オブジェクト)が直接別の実体を見本にして機能を借りてくる、より動的で柔軟な性質を持っています。
5. メモリ効率の向上
インスタンスごとにメソッドのコピーを持たず、プロトタイプにある共通メソッドを共有するため、メモリの消費を抑えることができます
6. 軽量な設計
クラス構文を使用しなくても、既存のオブジェクトを元にして新しい機能を持ったオブジェクトを効率的に作成できる点が強みです
現代の JavaScript 開発では Java に近い感覚で書ける「クラス構文」が主流ですが、その内部的な仕組みは依然としてこのプロトタイプベースで動いています。これは、次の第2章で、動作環境を構築してから、実際にプログラムを実装して動作を確認してみましょう。