Spidermonkey:如何删除全局对象

时间:2014-12-16 15:01:01

标签: javascript c spidermonkey

我可以用

创建一个全局对象
JS_NewCompartmentAndGlobalObject

(SM 1.8.5)或类似的功能

但是如何删除全局对象。据我所知,全局对象是根的,因此没有GC的东西。最后我可以调用JS_DestroyContext但是要调用JS_GC我必须有一个上下文。什么时候收集全局对象垃圾?

2 个答案:

答案 0 :(得分:1)

JS_DestroyContext调用执行垃圾收集以回收上下文全局使用的内存。假设您在销毁上下文之前应将JS::Rooted设置为JSVAL_NULL,以便GC运行时没有全局的堆栈根。

答案 1 :(得分:0)

阅读此主题topic。如果要在将来删除它,则需要使用var创建对象。或者,如果您不想使用它,只需将其null。如果此对象是在没有var的情况下创建的,则在您关闭窗口之前,GC不会对其进行处理。