本文へスキップ

プロトタイプ継承とは?

ぷろとたいぷけいしょう

プロタイプ継承とは、オブジェクトが別のオブジェクト(プロトタイプ)を参照することでプロパティやメソッドを引き継ぐ、JavaScriptで中心的な継承の仕組みです。

プロタイプ継承は、JavaScriptをはじめとするいくつかのプログラミング言語で採用されているオブジェクト指向の継承方式です。クラス定義して継承する「クラスベース継承」とは異なり、既存のオブジェクト自体を「プロトタイプ(原型)」として参照することで、プロパティやメソッドを共有します。

JavaScriptでは全てのオブジェクトが内部的に[[Prototype]](外部からは__proto__またはObject.getPrototypeOf()でアクセス)という隠しプロパティを持っており、プロトタイプチェーンを形成します。あるオブジェクトのプロパティやメソッドを参照するとき、そのオブジェクト自身に見つからなければプロトタイプをたどって上位のオブジェクトを探します。この連鎖をプロトタイプチェーンと呼びます。

たとえば、通常の配列はArrayのプロトタイプを持つため、push・popなどのメソッドが自動的に使えます。ArrayはさらにObjectのプロトタイプを持ち、toStringなどの汎用メソッドも利用できます。

ES6(ECMAScript 2015)以降はclassキーワードが導入され、クラスベースの記法で書けるようになりましたが、内部的にはプロトタイプ継承の仕組みの上に構築されたシンタックスシュガーです。プロトタイプ継承はJavaScriptの動作を深く理解する上で欠かせない基礎概念です。

使い方・例文

JavaScriptで新しいオブジェクトを作成すると、自動的にObject.prototypeを継承するため、明示的に定義しなくてもtoStringやhasOwnPropertyなどのメソッドがそのまま使えます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語