有没有办法在JavaScript中获取对象内存地址和对象哈希

anc*_*hor 3 javascript

正如问题的标题所述,我想知道是否有办法打印对象的内存地址,以及是否有内部对象哈希?我知道我可以使用对象比较器:

var x = {id:1};
var y = x;
console.log(x === y); // => true
Run Code Online (Sandbox Code Playgroud)

但是我想获得内存地址的字符串/数字表示形式和内部哈希的字符串表示形式,如果有一个...

T.J*_*der 6

这些信息都不可用在JavaScript中。如果要提供环境,它将是该环境功能集的一部分,而不是JavaScript本身。

还要注意,对象的内存地址在对象的整个生命周期中不一定是常数。特别是,现代JavaScript引擎可能会在堆栈上的函数中分配创建的对象,然后在该对象在函数终止后仍然存在的情况下将它们从堆栈复制到堆中。(尽管我不特别知道它们在进行垃圾收集时,它们也可能在必要时移动它们。)因此,即使您可以获取地址,此地址也可能在以后变得无效。但是,如果环境使信息可用,那么在这方面可能会附带针对特定环境的警告。