generated at
prototype
全てのオブジェクトが既存のオブジェクトのクローンとなる
クラスからオブジェクトが生成されることはない
OOPのようにクラスからインスタンスを生成するのではなく、全てがオブジェクトである
ただしプリミティブ型を除く
そのオブジェクトの親オブジェクトをプロトタイプという概念で保持
そのオブジェクトにメッセージが来て、自分がプロパティやメソッドを持っていなかった場合は、親オブジェクトにそのメッセージを転送する
その親も持ってなかったら、その親の親へ、、、
nullに到達するまで遡る

全てのオブジェクトは Object のインスタンス
Objectはプロトタイプチェーンのトップに当たる
JSの継承

こんなイメージ
js
var c = new Object; var p = new Object; // cにメッセージ応答を定義 c.hoge = "hoge"; // pにプロトタイプをセット p.__proto__ = c; // メッセージ送信 console.log(c.hoge); // "hoge" console.log(p.hoge); // "hoge" // p.__proto__.hogeに転送

言語例


プロトタイプベースなOOPの言語の例


参考