我正在使用 node.js。我有这个 handlers.js 文件:
exports.Handlers = function(prefix) {
this.prefix = prefix;
this.db = new DBInstance();
};
exports.Handlers.prototype.getItemById = function(id) {
var item = this.db.getItemById(id, function(error, item) {
item.name = this.prefix + item.name;
...
...
});
};
当我打电话时:
var h = new Handlers();
h.getItemById(5);
我收到一个错误,因为上下文不是处理程序并且 this.prefix 不存在。我可以用这个来修复它:
exports.Handlers.prototype.getItemById = function(id) {
var scope = this;
var item = this.db.getItemById(id, function(error, item) {
item.name = scope.prefix + item.name;
...
...
});
};
有没有更好的方法将上下文传递给回调?将上下文传递给回调的nodejs常用方法是什么?