有没有方法来检查Javascript变量的内存地址?

时间:2018-05-25 14:01:29

标签: javascript

是否可以在现代Javascript中找到JavaScript变量的内存地址?或者是Typescript变量的地址。

我对传递值和传递参考感到困惑,使用内存地址很容易理解现实。现在我们现在有了ES8和Typescript,但仍然无法获取变量和Object的内存地址。

3 个答案:

答案 0 :(得分:1)

来自this post

或多或少不可能 - Javascript的评估策略是始终使用按值调用,但在对象(包括数组)的情况下,传递的值是对Object的引用,不会复制或克隆。如果在函数中重新分配对象本身,则不会更改原始对象,但如果重新分配对象的某个属性,则会影响原始对象。

答案 1 :(得分:0)

我知道的所有JavaScript运行时都会隐藏此信息。

但是,您可以使用Typed Arrays和基于您希望存储的数据类型的相应缓冲区视图来模拟内存指针的行为。您可以通过将数据保存在特定偏移处来模拟指针,然后将该偏移量传递给直接在类型化数组中操作数据的不同函数:也就是说,偏移量就像是一个低级指针。

答案 2 :(得分:0)

JavaScript本身意味着与实现无关,因此语言本身故意不存在内存地址等概念。在语言之外,您可以使用浏览器的调试工具来获取内存快照,并且可能包含这些信息。但请注意,没有真正保证对象将保留其地址。