javascript - 如何调用 'upper class'这个关键字呢?

标签 javascript node.js

我有一个脚本,其中包含一个使用回调返回状态的函数,并且我必须将其是否成功提交给类变量。我无法使用 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

最佳答案

您可以做两件事,保存对 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));
}

关于javascript - 如何调用 'upper class'这个关键字呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27612893/

相关文章:

javascript - 使用另一个函数将对象传递给映射函数

javascript - 将 2 个 div 附加到一个 div 中以使用 javascript 打印它们

Node.js:链式 process.exit() 调用

node.js - W : Failed to fetch http://deb. debian.org/debian/dists/jessie-updates/main/binary-amd64/Packages 404 未找到 [IP : 151. 101.140.204 80]

node.js - zsh : command not found: express - express-generator version 4. 2.0 已安装

node.js - yeoman 生成器中的 ComposeWith 不发出结束事件,因此不驱动 'on' 方法

javascript - 高效地从 Ruby on Rails 中的联接表中提取值以在 javascript 中使用

javascript - 一片 React redux 存储状态是否必须是一个对象?

php - PHP 中的 NodeJS 缓冲区等效项

javascript - 如何让代码在调用带有返回值的异步调用(如 Ajax)时等待