JavaScript是否具有与Perl';什么是破坏方法?
在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
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?