當我開始使用Javascript時,我學會了當你通過外部事件處理程序(如計時器)引用對象中的函數時,難以依靠this.
來引用對象 - 它會引用事件的範圍(在定時器的情況下,我認爲它是window
?)。Javascript:是否利用本地參考自己可以接受的編碼習慣?
我看到正在使用的解決方案是爲自己創建一個私有/本地引用,並在回調邏輯中使用它。例如:
function MyObject() {
var myThis = this;
this.foo = true;
this.callback = function() { return myThis.foo; }
this.interval = 30;
setInterval(function() { myThis.callback(); }, myThis.interval);
}
是對這樣的情況下,這種標準的編碼實踐,如果沒有,什麼是最佳的替代,爲什麼(例如,什麼是上面的例子中的風險。)?
兩個堅實的答案 - 謝謝你們:) – chopperdave 2012-04-06 01:32:32