JavaScriptのオブジェクトに共通の特殊なプロパティとしてprototypeプロパティがあります。JavaScriptではこのプロパティを利用して同じプロパティと初期値を持つオブジェクトを複数作成できます。

クラス 同じプロパティと初期値を持つオブジェクトを複数作成するためにRubyが利用するのはクラスです。

prototypeプロパティに設定されたオブジェクトのプロパティは、元のオブジェクトのプロパティのように外部からは扱えます。JavaScriptではこのことを利用してオブジェクトの継承関係を作成できます。

function X() {} X.prototype = {one: function() { return 1;}}; ←Xのprototypeにoneという名前のプロパティを持つオブジェクトを設定 var y = new X(); ←Xの新しいオブジェクト（prototypeプロパティは引き継がれる） alert(y.one()); ←oneプロパティに設定した関数を呼び出して1を表示 function X2() {} X2.prototype = new X(); ←X2のprototypeにXを設定 X2.prototype.two = function() { return 2; }; ←X2のprototypeにtwoという名前のプロパティを追加 var y2 = new X2(); ←X2の新しいオブジェクト alert(y2.one()); ←X2のprototypeに設定されたXのprototypeが参照できるためoneを呼び出せる alert(y2.two()); ←twoプロパティに設定した関数を呼び出して2を表示