我知道有一個聰明的方法來利用閉包並執行我正在尋找的操作,但我不確定它是什麼。在事件處理程序中關閉一個變量
在以下代碼:
var MyApp = {
innerObject : {
myData : "test value",
myMethod : function() {
// 'this' ends up referring to HTMLElement, not what I want
alert(this.myData);
}
}
open : function() {
document.getElementById('connectLink').addEventListener('click', this.innerObject.myMethod, false);
}
}
MyApp.open();
我期待的事件處理程序附加到使用id =「connectLink」的元素內部innerObject的方法。該方法訪問innerObject內的其他數據以執行其功能。我知道這與JavaScript中關鍵字this
的棘手本質有關。有沒有一種模式可以解決這個問題?
只是爲了澄清這是
alex
2011-05-31 00:49:30