我在_.isEqual下的underscore.js文档中看到了这一点。为什么会这样呢?
var moe = {name: 'moe', luckyNumbers: [13, 27, 34]};
var clone = {name: 'moe', luckyNumbers: [13, 27, 34]};
moe == clone;
=> false
是因为字符串和数字不是对象,所以可以比较它们,但是JS不允许您比较作为对象的数组或对象文字吗?
最佳答案
对象文字始终定义一个新对象,因此变量moe
和clone
引用不同的对象。
仅当操作数引用相同的对象时,比较对象的表达式才为true
read more about comparison
this post还具有很好的提升功能,具有深层的“相似”比较功能