我在 underscore.js 文档的 _.isEqual 下看到了这一点。为什么会这样?
var moe = {name: 'moe', luckyNumbers: [13, 27, 34]};
var clone = {name: 'moe', luckyNumbers: [13, 27, 34]};
moe == clone;
=> false
是不是因为字符串和数字不是对象,所以可以比较它们,但 JS 不允许比较数组或对象文字?
最佳答案
对象字面量总是定义一个新对象,因此变量 moe
和 clone
引用不同的对象。
An expression comparing Objects is only true if the operands reference the same Object
还有this post有一个很好的答案,具有深度“相似”比较功能
关于来自 Underscore 文档的 JavaScript 相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19342000/