蜘蛛猴:如何删除全局对象

Spidermonkey: How do I delete the global object

本文关键字:删除 全局 对象 何删除      更新时间:2023-09-26

我可以创建一个全局对象

JS_NewCompartmentAndGlobalObject

(SM 1.8.5) 或类似功能

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

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

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