如果你能向我解释为什么shout()一直被调用,尽管它被认为“消失”了,我会很高兴。Javascript函数不断被调用,虽然它的类是空的
var myclass = new Class({
myid: "greatidea",
initialize: function(element) {
var shout = function() { alert(this.myid); };
shout.periodical(5000, this); // test debug
}
});
x = new myclass();
alert(x);
x=null;
alert(x);
也看到这里http://mootools.net/shell/jhCBz/
基本上,我的想法:函数都有自己的注册,现在是独立谁把它称为对象。但我很乐意得到一个真实的解释。
谢谢。
非常感谢@jball。是否有另一种方法来停止函数调用(除了清除定时器)? – Nir 2010-02-04 19:12:08
不,调用'$ clear'是我知道的唯一方法。 – jball 2010-02-04 19:48:34
是的,即使定期参考是类的属性,它也会失败:http://mootools.net/shell/ZBrm7/1/ 即使您删除类本身,它也会继续。非常讨厌 - 但你可能必须编写一个.destroy()方法,其中$ clear(this.timer); – 2010-02-05 10:50:02