プロトタイプベース
Selfとは少し別の切り口から、Smalltalkクラスベース設計の平易化を図ったダグラス・クロックフォード(英語版)は、JavaScriptのプロトタイプベースをこのように概略している。
プロトタイプベースはプログラマに、オブジェクトをどう振る舞わせるかということのみに集中させて、オブジェクトが実際に振る舞えるかどうかの疑問を後回しにできる環境を提供する。振る舞いとはメソッドである。疑問の後回しとは動的型付けのダックタイピングを意味している。プロトタイプベースは静的型付けの実装を排除してる訳ではないが、その特性と利点を最大限に活かすための動的型付けが好まれている。
プロトタイプベースのオブジェクトは総じて、スロットの可変長配列として実装されている。スロットとは「シンボル+コンテンツ」のペアデータである。シンボルはプロパティ名やメソッド名を表わし、コンテンツはプロパティ値やコードブロック参照を表わす。プロパティスロットはプロトタイプ参照やthis参照(self参照)の容器にもなる。Selfではメソッドスロットがメッセージ式で送られるセレクタの受け手になる。
オブジェクトの構築は、クローン方式かエクスニヒロ方式で行われる。クローン(clone)は既存オブジェクトを複製する方式であり、複製後にプロパティ/メソッドの自由な取り付け取り外しもできる。