我在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吗?
答案 0 :(得分:3)
kittenA
和kittenB
都属于object
类型,因此案例7适用:
- 如果x和y引用同一个对象,则返回true。否则,返回false。
醇>
引擎如何知道它们是对同一对象的两个引用?如何精确实施参考将根据引擎而变化。它可能只是一个指向内存位置的数字或列表中的索引(所有对象中的索引)。