检查对象等于对象javascript

check object Equal object javascript

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do you determine equality for two JavaScript objects?

我要检查两个对象是否不同:

1
2
3
4
5
6
7
var v1 = {id:"llll", dd="kkkk"};
var v2 = {id:"llll", dd="kkkk"};

if (v1 == v2)
{
    alert("lll");
}

为什么不工作?????


因为对象是通过引用进行比较的:

  • 功能
  • 对象(宿主对象、本机对象/构造函数和实例)
  • 一个常见的实例是{},与new Object类似。

以下对象类型按值而不是参照进行比较:

  • 数字
  • 布尔值
  • nullundefined

此外,还有一个对象永远不等于它本身,甚至不通过引用:

1
2
3
var test = NaN;
alert ( test == NaN  ); // false
alert ( test == test ); // false (!)

要检查两个对象是否相等,必须定义相等:

  • "如果两个对象包含相同的属性名和值,则它们是相等的"
    这意味着对象A必须具有与对象B相同数量的属性,并且A中的每个属性也必须是B的属性。


尝试使用"=="而不是"=="比较对象。