JavaScript中是否有一个唯一标识符用于对象?

9
在这个例子中,是否有一个可搜索的、唯一的标识符(即键、uid等——请原谅我可能会误用正确术语),用于区分ob1和ob2?
var makeObject = function() {
return {example: 'property'};
};

var ob1 = makeObject();
var ob2 = makeObject();

现在我们知道:
ob1 === ob2;  // false

在这个不等式的布尔区别之外,是否有将唯一的低级字符临时赋给ob1和ob2?如果是,这些唯一字符能否通过控制台访问?
编辑: 如何以确定两个JavaScript对象的相等性?真正深入了我的问题的差异化方面,所以谢谢。我觉得我问题的另一个部分更关注ob1与ob2之间的机器级差异(实用性和/或用户可访问性除外),我认为“在内存中的不同位置”肯定可以回答这个问题。

1
它返回false,因为obj1obj2指向的引用不是内存中相同的空间(两者都指向不同的对象)。{} === {}也将是false。比较不关心属性。 - ibrahim mahrir
1
我认为这是一个重复的问题:https://dev59.com/xXVC5IYBdhLWcg3wtzut 和 https://dev59.com/o3NA5IYBdhLWcg3wKacx。 - John
1
可能是JavaScript中的对象比较的重复问题。 - ibrahim mahrir
1个回答

6
简短回答:没有,没有你能访问到的低级别唯一字符。
顺便说一下,你示例中的obj1obj2不相等的原因是因为它们实际上指向内存中的不同位置。这是唯一进行比较的内容(与JavaScript字符串比较不同,后者比较内存位置,而是比较字符串本身的值)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接