function Foo(){ this.x = function(){} } new Foo().x === new Foo().x //-> false そりゃ、そうなるよなぁ。こういう書き方をしているとインスタンスの数だけメソッド定義の実体ができてしまう。 function Foo(){ } Foo.prototype = { x: function(){} } new Foo().x === new Foo().x //-> true こうするのかな? P.S. これだとprototypeにすでに値が入っていた場合消えてしまうのでprototype.x = function...の方がよいと id:TAKESAKOさんに教えてもらいました