這將在代碼中更好地解釋:使用原來`this`在事件觸發外
var FileResourceManager = {
LoadRequiredFiles: function (config) {
config = config || {};
this.OnLoading = config.onLoadingCallback;
this.OnComplete = config.onCompleteCallback;
//this works fine here.
if (this.OnLoading) {
this.OnLoading();
}
Modernizr.load([{
load: 'somefile.js',
complete: function() {
//Error in this callback here.
if (this.OnComplete) {
this.OnComplete();
}
}
});
}
};
FileResourceManager.LoadRequiredFiles({
onLoadingCallback: function() {
alert('started');
},
onCompleteCallback: function() {
alert('complete');
}
});
正如你所看到的,在回調Modernizr.load的complete
事件,我想調用的方法父/外部對象。但this
實際上成了Modernizr對象。我如何訪問事件內部的外部對象的屬性?
我已經在backbone.js項目中看到過這個,通過使用某種形式的綁定。我不確定是否需要寫這樣的東西。
此外,在一個地方你的代碼是指'OnCompleteCallback',而在另一方面,它指的是'OnComplete'。那些應該是同一件事嗎? –