检查对象等于对象javascript

时间:2012-02-11 21:42:36

标签: javascript object

  

可能重复:
  How do you determine equality for two JavaScript objects?

我想检查两个对象是否没有区别:     

var v1 = {id:"llll", dd="kkkk"};
var v2 = {id:"llll", dd="kkkk"};

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

不行的原因????

2 个答案:

答案 0 :(得分:5)

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

  • 功能
  • 对象(主机对象,本机对象/构造函数和实例)
  • 常见实例是{},类似于new Object

以下对象类型按值进行比较,而不是通过引用进行比较:

  • 字符串
  • 数字
  • 布尔
  • nullundefined

此外,有一个对象从不等于自身,甚至不是通过引用:

var test = NaN;
alert ( test == NaN  ); // false
alert ( test == test ); // false (!)

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

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

答案 1 :(得分:0)

尝试使用“===”代替“==”来比较对象。