如果你能向我解釋爲什麼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