Javascript如何判断两个对象是否相同?
How does Javascript determine whether two objects are the same?
我阅读了关于 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
会return假吗?
kittenA
和 kittenB
都是 object
类型,所以情况 7 适用:
- Return true if x and y refer to the same object. Otherwise, return false.
引擎如何知道它们是对同一对象的两个引用?引用的具体实现方式因引擎而异。它可能只是一个指向内存位置的数字或(所有对象的)列表中的索引。
我阅读了关于 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
会return假吗?
kittenA
和 kittenB
都是 object
类型,所以情况 7 适用:
- Return true if x and y refer to the same object. Otherwise, return false.
引擎如何知道它们是对同一对象的两个引用?引用的具体实现方式因引擎而异。它可能只是一个指向内存位置的数字或(所有对象的)列表中的索引。