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