比较等于对象给出false,javascript

时间:2017-02-18 13:57:29

标签: javascript

var arr = [
  {
     groups: {
       TypeID: 'AV601'
     }
  }
]

var prop = {
  TypeID: 'AV601'
}

console.log(arr[0].groups);
console.log(prop);
console.log(arr[0].groups === prop)// false

这怎么会假的?它们是一样的吗?

https://jsbin.com/giholunupa/edit?js,console

1 个答案:

答案 0 :(得分:1)

这是因为Javascript通过引用而不是按键相等来比较对象。这两个对象只具有相同的键名和相同的键值,但在内存中,它们指向不同的地址。

let o1= {}; // points to address "#aaa" in memory
let o2= {}; // points to address "#bbb" in memory

o1 === o2; // false