为什么在比较Javascript和Ruby中的2个对象时会有这样的差异? (这很令人困惑)
在Javascript中:
obj1 = [1,2];
obj2 = [1,2];
obj1 == obj2
// false
Ruby中的:
obj1 = [1,2];
obj2 = [1,2];
obj1 == obj2
# true
答案 0 :(得分:4)
在Javascript中,数组是对象,==
将测试两个对象是否是同一个实例。如果您想比较其内容,请阅读Comparing two arrays in Javascript。
在Ruby中,有多种方法可以比较对象。 ==
用于比较值,因此它们是相同的。
要比较它们是否是同一个对象,请使用equal?
:
obj1.equal? obj2
# => false