JavaScriptでオブジェクト指向をおさらい中

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さんに教えてもらいました