我有一個第三方Flash對象,我可以通過他們提供的JavaScript API進行操作。我嘗試在這個對象上聽一個事件,然後在我的對象內部激發事件以進一步激發事件。我碰巧在使用EXT Js,但我不認爲它在這裏很重要。addEventListener和這個的範圍
示例代碼
this.chart.addEventListener('create', function() {
this.fireEvent('created');
}, false)
我的問題是,「這個」匿名函數內部是指引發該事件,而不是我的目標,我要開槍事件的對象。
它的另一個範圍問題。預先感謝您的幫助。
我更喜歡'var self = this;'。創建一個函數,然後執行它,同時傳遞'this'作爲參數似乎有些過度 - 代碼也稍微長一些;-) – 2009-11-26 12:32:36
@Andy:是的,當代碼存在於一個小的執行上下文中時,我也經常這樣做。然而,以上是標準方法,適用於更多種場景。'self'標識符的範圍僅限於閉包,在事件觸發之前,沒有後續代碼可能修改其中包含的值的危險。這不適用'var self = this;'方法。 – AnthonyWJones 2009-11-26 13:13:27