对不起,糟糕的描述,但有一些类:
Event.Ticker = Class.create();
Object.extend(Event.Tick.prototype, { initialize: function (container, seconds) {
...ETC..
和这段代码:
new Event.Ticker("ID", 20);
所以计数器从 20 下降到 0 我如何在任何时候杀死它?
对不起,糟糕的描述,但有一些类:
Event.Ticker = Class.create();
Object.extend(Event.Tick.prototype, { initialize: function (container, seconds) {
...ETC..
和这段代码:
new Event.Ticker("ID", 20);
所以计数器从 20 下降到 0 我如何在任何时候杀死它?
大概有一种方法可以调用
myEvent.Stop()
这可能会调用clearInterval
或诸如此类,但这取决于所述接口暴露。
JavaScript 是完全垃圾回收的,没有隐式(或显式)析构函数。如果需要,所有“清理”(例如Stop
)都必须明确完成。
没有办法“删除”一个对象,只能让它变得无法访问,在这种情况下,GC 可能会回收(“销毁”)它,如果它感觉像它 - 但是两者都setInterval
将setTimeout
保持对回调的强引用 1 ) 将触发回调,即使回调和/或myEvent
在其他地方不可强访问 2) 如果其他对象可通过回调访问,则可能会阻止其他对象有资格进行回收。
快乐编码。
请参阅垃圾收集:对象的可达性。