對象調用函數我有一個這樣定義的對象:在使用JavaScript
Blah = {
hideTimer:null,
setTimer: function() {
this.hideTimer = window.setTimeout(Blah.hidePopupInner, 500);
// must be done via window due to Greasemonkey
},
hidePopupInner: function() {
log("This? " + this);
},
hidePopupInnerPublic: function() {
Blah.hidePopupInner();
}
}
的問題是,「這」在KillTimer函數是不設置爲胡說。如果我改行
this.hideTimer = window.setTimeout(Blah.hidePopupInnerPublic, 500);
那麼'this'指向Blah,因此可以使用hideTimer。
爲每種方法制定一個「公共」方法解決了這個問題,但必須有一個更簡單的解決方案......?
注意:這一切都在Greasemonkey,但我認爲這是一個通用的Javascript問題。
你能說清楚你的PS嗎?你的意思是在我的代碼中它會這樣做嗎? – 2009-12-08 15:24:39
我的PS,只是我自己用setTimeout的經驗,它不會在你的情況下產生任何問題。 – nemisj 2009-12-08 15:43:23
完美,謝謝你 – 2009-12-08 16:41:57