概要
{} === {} // => false
詳細
JavaScriptでの比較は、落とし穴が多い。詳しくは参考に挙げたページを見てもらえるとわかるが、 +0 === -0 が false になったりと良く知っていないとハマりがちである。
ではどうやって object 同士を比較すれば良いか、というのが気になるが、一番確実なのは object のうち、どれを比較すれば良いかを自分で管理して、それを比較するのが良いのではないだろうか。例えば、Userを表す object を比較する際は、 user.id 同士を比較するといった具合である。
なお、Rubyであれば Object#==? のオーバライド、Pythonであれば __eq__ のオーバライドすることで、オブジェクト同士が比較された際の挙動を変えられる。