我关于C++对象& JavaScript对象的生命周期误同步,在这里希望你大师可以帮助我的问题。C++对象和JavaScript对象的生命周期误同步
具体来说,我在我的C++程序中嵌入了SpiderMonkey。我不确定我的方法是否正确。我在做什么就像
(1)C++程序加载一个Javascript文件并调用一个入口函数。
(2)在入口函数中,调用一些C++函数来初始化程序。在这些调用中,将创建一些C++对象。 (3)基于用户交互,相应的脚本函数将被称为事件处理函数。
这种方法的工作原理,但有一个问题(可能有不明身份的更多:)
也就是说,
在我的JS事件处理函数,我需要获取一个C++对象给Javascript背景和称它为成员函数。为此,在我的C++读取函数中,我检查是否已创建其相应的JS对象。如果不是,我使用JS_NewObject创建一个并返回它。然后JS函数可以调用它的本地函数。
的问题是,在某些情况下,这种本地函数调用的结果会导致C++对象的死亡。但是,我找不到一种方法来通知JS上下文来删除它的JS对象。我没有找到一个JSAPI函数来这样做。
在我目前的计划,当最后的JS运行时被销毁所有使用JS_NewObject建立的JS对象被销毁。
我想这与SipderMonkey的“垃圾收集”有关。但我还没有找到一个好的指导。非常感谢任何suggestionto