我正在编写一个RequireJS模块,我用它来包装LG的webOS SCAP库所使用的ASYNC方法(这是一个基于Cordova的库,可以轻松地与webOS交互,在#34上;标牌"屏幕)。
SCAP方法依赖于成功和失败回调。
在我成功的一个回调中,我需要在同一个模块中调用另一个方法。
我尝试使用" var self = this"然后调用" self.methodName"但它总是未定义的。如果我调试," self"引用似乎已正确填充,显示所有"窗口"数据。但该方法尚未定义。
我已经能够在同一模块中调用其他模块中的方法,并且它可以工作。但这是我第一次尝试从嵌套函数中调用它。
代码:
define(["settings"], function(settings) {
return {
updateProgress: function() {
var self = this;
// this is called when the statFile function succesfully finds the file and can read its properties
var successCb = function(cbObject) {
self.getDownloadSpeed(); // "self" is defined, getDownloadSpeed isn't.
};
var failureCb = function(cbObject) {
// stuff here
};
var options = {
// stuff here
};
settings.storage.statFile(successCb, failureCb, options); // SCAP method used to get file info (size, date modified etc)
},
getDownloadSpeed: function() {
// stuff here
}
};
});