我有一个脚本,其中包含一个使用回调来返回状态的函数,我必须提交它是否对类变量成功。我无法使用this
来访问它,因为它不在范围内。我无法发布我的确切代码的代码段,但以下内容应说明我的问题
var thisObject = Item.prototype;
function Item(directory){
this._completedTasks = [];
this._fsDirectory = directory;
if (!fs.existsSync(this._fsDirectory)){
fs.mkdirSync(this._fsDirectory);
}
}
thisObject.doStuff = function(url){
goGetFile(url, function(message){
this._completedTasks.push(url);
//_completedTasks appears to be undefined here.
});
}
module.exports = Item;
如何访问变量_completedTasks
?
答案 0 :(得分:1)
你可以做两件事,保存对this
的引用,然后使用它,或使用bind来设置执行上下文
//Saving a reference
thisObject.doStuff = function(url){
var that = this;
goGetFile(url, function(message){
that._completedTasks.push(url);
});
}
//Using bind
thisObject.doStuff = function(url){
goGetFile(url, function(message){
this._completedTasks.push(url);
}.bind(this));
}