クロージャを使ってクラス定義する例が以下。 function FooClass(a) { this.getA = function() { return a; } this.square = function() { return a * a; } } prototypeを使ってクラス定義する例が以下。 function BarClass(a) { this.a = a } BarClass.prototype = { "getA" : function() { return this.a; }, "square" : function() { return this.a * this.a; } } クロージャを使っている場合は、オブジェクトが生成されるたびに違った関数オブジェクトがメソッドとして登録されるが、prototypeを使っている場合は、オブジェクトが生成された時にメソッドとして