JS: 在回调中找到object的函数

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;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容