プロトタイプベース 【prototype-based】
概要
プロトタイプベース(prototype-based)とは、オブジェクト指向プログラミング言語のうち、元になるオブジェクトを複製し、要素や動作の追加や変更を行うことで新しいオブジェクトを定義する方式。オブジェクトの雛形にあたる「クラス」(class)を定義するクラスベース(class-based)のオブジェクト指向と対比される。クラスベースでいう「インスタンス」(instance)に当たる具体的なオブジェクトしか存在しない仕様で、新しいクラスの定義や既存クラスからの派生・継承に当たる動作はオブジェクトのクローン(複製)を作って内容を追加・変更するという手順で行う。
SelfやLuaなどの言語がプロトタイプベースの仕様を持ち、class構文導入前のJavaScriptもよく例として挙げられる。JavaScriptは確かにクラス定義に相当する仕様を持たなかったが、new構文やprototypeオブジェクトなど、クラスベースとの折衷のような変則的な仕様とも言われる。
(2022.5.21更新)