Javascript如何确定两个对象是否相同?

时间:2016-04-28 16:26:46

标签: javascript comparison equality

我在equality comparison at MDN上阅读了一篇文档,但我对Javascript如何执行严格的相等检查感兴趣。

还有这个规范:http://ecma-international.org/ecma-262/5.1/#sec-11.9.6,但我真的不明白它是如何应用于两个对象的。最后一个陈述是我认为的关键:

Return true if x and y refer to the same object. Otherwise, return false.

但Javascript如何检查它们是否引用同一个对象?

例如,给定一个具有Kitten属性的对象name,我创建两个用其名称初始化的小猫:

var kittenA = new Kitten("kitty A");
var kittenB = new Kitten("kitty B");

Javascript使用什么来确定以下语句

kittenA === kittenB

会返回false吗?

1 个答案:

答案 0 :(得分:3)

kittenAkittenB都属于object类型,因此案例7适用:

  
      
  1. 如果x和y引用同一个对象,则返回true。否则,返回false。
  2.   

引擎如何知道它们是对同一对象的两个引用?如何精确实施参考将根据引擎而变化。它可能只是一个指向内存位置的数字或列表中的索引(所有对象中的索引)。