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

时间:2018-09-19 11:50:12

标签: javascript

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

var x = {id:1};
var y = x;
console.log(x === y); // => true

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

1 个答案:

答案 0 :(得分:4)

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

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