JavaScript是否具有与Perl';什么是破坏方法?

JavaScript是否具有与Perl';什么是破坏方法?,javascript,perl,firefox,garbage-collection,destroy,Javascript,Perl,Firefox,Garbage Collection,Destroy,在JavaScript垃圾收集器清理元素之前,是否有调用的方法或调度的事件 我将用Perl编写: package MyObj; sub new {bless {}} sub DESTROY {print "cleaning up @_\n"} 后来: { my $obj = MyObj->new; # do something with obj } # scope ends, and assuming there are no external referenc

在JavaScript垃圾收集器清理元素之前,是否有调用的方法或调度的事件

我将用Perl编写:

package MyObj;

sub new {bless {}}

sub DESTROY {print "cleaning up @_\n"}
后来:

{
    my $obj = MyObj->new;

    # do something with obj

}  # scope ends, and assuming there are no external references to $obj,
   #   the DESTROY method will be called before the object's memory is freed
我的目标平台是Firefox(我不需要支持其他浏览器),因此,如果只有Firefox特有的方法来实现这一点,那就好了

还有一点背景:我正在编写Perl模块,它是Perl和Firefox之间的桥梁,我目前正在努力堵住一些与DOM元素相关的内存泄漏,即使在它们消失并且Perl端不再保留引用之后,这些元素仍然会永久存在。因此,我正在寻找一种方法,要么找出JavaScript元素何时会被销毁,要么找到一种强制JavaScript清理对象的方法


如果在纯JavaScript中无法做到这一点,那么使用XPConnect/XPCOM或任何其他Mozilla特定技术的解决方案是可以接受的。

在纯JavaScript中没有实现这一点的机制。

XUL::Gui是否允许您在SpiderMonkey API层与浏览器交互?如果是这样,可能会对你有用。否则,您可能会陷入困境,因为正如Matthew Flaschen在上文中所说,在Javascript中无法实现这一点。

firefox特定的Javascript或XPCOM非常有趣,这可能是一种可能性。目前,所有的
XUL::Gui
与浏览器的交互都是在JavaScript级别上,从chromeURL运行。有没有一种方法可以从使用chrome权限运行的JavaScript获取JSAPI?