js object中定义的函数可以用this.foobar来调用,但是如果函数中有回调,那么在回调中就找不到了,具体原因我没看,猜测是this被自动更新到新的scope中去了,所以解决方法就是在this被更新前存一份,大概这样(代码手写,没测试,明白个意思就好):
foobar.prototype.foo = function foo() {
console.log('This is foo');
}
foobar.prototype.bar = function bar() {
this.foo(); // This is foo
var myself = this;
otherModule.callAsync(function(callback) {
// this.foo(); - This raise error
myself.foo(); // This is foo
});
}
module.exports = foobar;