如何获取JavaScript变量的内存地址?

问题描述 投票:59回答:3

是否可以找到JavaScript变量的内存地址? JavaScript代码是常规应用程序的一部分(嵌入到其中),其中JavaScript用作C ++的前端,并且不能在浏览器上运行。使用的JavaScript实现是SpiderMonkey。

javascript spidermonkey memory-address
3个回答
18
投票

如果有可能,那将完全取决于javascript引擎。更现代的javascript引擎使用即时编译器来编译其代码,并且弄乱其内部变量将对性能或稳定性不利。

如果引擎允许,为什么不对某些本机代码建立函数调用接口以交换变量的值?


11
投票

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

那是说,您要完成什么?如果只是在C ++和Javascript之间传递复杂的数据,则可以使用JSON库进行通信。将JSON对象发送到C ++进行处理,并获取一个JSON对象来替换旧的对象。


0
投票

我是javascript.com的新手,继续@ vivekian2问题。我想知道如何打印变量的存储位置。我正在与终端进行交互。谢谢

© www.soinside.com 2019 - 2024. All rights reserved.