mootools 有析构函数吗?我有一个统计类实例的静态变量。
问题是当实例被销毁时,我无法更新我的静态变量。无论如何要扩展析构函数,以便我可以更新该变量?
问问题
572 次
1 回答
1
从来没有在mootools中看到过这种情况,通常,你让浏览器垃圾收集所以......
到目前为止,这不是一个理想的解决方案——它需要知道实例的范围(窗口、其他对象等)。
混合类:
var Destructor = new Class({
destruct: function(scope) {
scope = scope || window;
// find the object name in the scope
var name = Object.keyOf(scope, this);
// let someone know
this.fireEvent && this.fireEvent('destroy');
// remove instance from parent object
delete scope[name];
}
});
然后你在你想要的类中使用它:
var a = new Class({
Implements: [Events, Options, Destructor],
initialize: function(options) {
this.setOptions(options);
this.hai();
},
hai: function() {
console.log('hai');
}
});
最后,您创建一个类的实例,并绑定一个事件onDestroy
var instance = new a({
onDestroy: function() {
console.log('goodbye cruel world. time to set affairs in order!');
}
});
instance.destruct();
instance.hai(); // reference error.
我知道这很hacky,但它可能使您能够明智地销毁类并进行清理。
于 2012-07-27T08:19:57.540 回答