如何获取JavaScript变量的内存地址?
可以找到JavaScript变量的内存地址吗?JavaScript代码是一个正常应用程序的一部分(JavaScript被用作C++前端,不在浏览器上运行)。使用的JavaScript实现是SpiderMonkey。如果可能的话,它将非常依赖于JavaScript引擎。更现代的javascript引擎使用即时编译器编译代码,弄乱它们的内部变量会对性能或稳定性造成不利影响如何获取JavaScript变量的内存地址?,javascript,spidermonkey,memory-address,Javascript,Spidermonkey,Memory Address,可以找到JavaScript变量的内存地址吗?JavaScript代码是一个正常应用程序的一部分(JavaScript被用作C++前端,不在浏览器上运行)。使用的JavaScript实现是SpiderMonkey。如果可能的话,它将非常依赖于JavaScript引擎。更现代的javascript引擎使用即时编译器编译代码,弄乱它们的内部变量会对性能或稳定性造成不利影响 如果引擎允许,为什么不对一些本机代码进行函数调用接口以交换变量的值呢?这或多或少是不可能的-Javascript的评估策略是始终
如果引擎允许,为什么不对一些本机代码进行函数调用接口以交换变量的值呢?这或多或少是不可能的-Javascript的评估策略是始终使用按值调用,但对于对象(包括数组),传递的值是对对象的引用,而不是复制或克隆。如果在函数中重新指定对象本身,则不会更改原始对象,但如果重新指定对象的某个属性,则会影响原始对象
也就是说,你想完成什么?如果只是在C++和JavaScript之间传递复杂数据,可以使用JSON库进行通信。将JSON对象发送到C++进行处理,并获得JSON对象来替换旧的.j/P> < P>我认为这是可能的,但您必须:
所谓“嵌入到普通应用程序中”,您的意思是您有一个带有嵌入式Javascript的网页吗?不,它不在浏览器上运行,不涉及任何网页。JavaScript引擎是一个普通的桌面应用程序的一部分。是的,我同意,认为需要在C++中有一些代码可以与JavaScript接口。你能以某种方式改变原始指向的对象吗?你的意思是,在不同的范围内改变对象的引用吗?不。在这种情况下,最好利用JS的封装或面向对象功能,或者将要更改的函数体和引用放在同一范围内,或者将引用和同一对象的函数成员放在同一范围内。这是您的假设吗?