javascript 中的对象是否有唯一标识符?
Is there a unique identifier for an object in javascript?
是否有可搜索的唯一标识符(即密钥、uid 等... - 请原谅可能对专有术语进行屠杀)以区分此示例中的 ob1 和 ob2?
var makeObject = function() {
return {example: 'property'};
};
var ob1 = makeObject();
var ob2 = makeObject();
现在我们知道:
ob1 === ob2; // false
除了这种不等式的布尔区分之外,是否有较低级别的唯一字符被临时分配给 ob1 和 ob2?如果可以,是否可以通过控制台访问这些独特的字符?
编辑:
How to determine equality for two JavaScript objects? 真正进入了我问题的差异化方面,所以谢谢你。我觉得我的问题的另一部分更侧重于 ob1 与 ob2 的机器级别差异(除了实用性 and/or 用户可访问性),我相信 "different places in memory" 肯定会回答这个问题。
are there lower level unique characters being temporarily assigned to ob1 and ob2
简短回答:不,您无法访问任何内容。
顺便说一句,obj1
和 obj2
在您的示例中不相等的原因是因为它们实际上 指向内存中的不同位置 .这是唯一正在进行的比较(这不同于 JavaScript 字符串比较,后者 不是 比较内存位置,而是字符串本身的值)。
是否有可搜索的唯一标识符(即密钥、uid 等... - 请原谅可能对专有术语进行屠杀)以区分此示例中的 ob1 和 ob2?
var makeObject = function() {
return {example: 'property'};
};
var ob1 = makeObject();
var ob2 = makeObject();
现在我们知道:
ob1 === ob2; // false
除了这种不等式的布尔区分之外,是否有较低级别的唯一字符被临时分配给 ob1 和 ob2?如果可以,是否可以通过控制台访问这些独特的字符?
编辑: How to determine equality for two JavaScript objects? 真正进入了我问题的差异化方面,所以谢谢你。我觉得我的问题的另一部分更侧重于 ob1 与 ob2 的机器级别差异(除了实用性 and/or 用户可访问性),我相信 "different places in memory" 肯定会回答这个问题。
are there lower level unique characters being temporarily assigned to ob1 and ob2
简短回答:不,您无法访问任何内容。
顺便说一句,obj1
和 obj2
在您的示例中不相等的原因是因为它们实际上 指向内存中的不同位置 .这是唯一正在进行的比较(这不同于 JavaScript 字符串比较,后者 不是 比较内存位置,而是字符串本身的值)。