【问题标题】:Calling original callback function with its context [duplicate]使用其上下文调用原始回调函数[重复]
【发布时间】:2018-05-06 21:39:44
【问题描述】:

我有这个代码:

function A() {
  this.name = 'John';  
}
A.prototype.getName = function() {
  return this.name;
}

function B() {

}
B.prototype.callApi = function(cb) {
  var context = arguments[0];
  setTimeout(function() {
    console.log('server data combine with ' + cb());
  }, 1000);
}

var a = new A();
console.log(a.getName());

var b = new B();
b.callApi(a.getName);

我希望在执行 getName 时,this 变量指向 a 对象。

问题是当cb被执行时,this不属于a instance

【问题讨论】:

    标签: javascript callback this


    【解决方案1】:

    您必须将this 的范围绑定到a

    b.callApi(a.getName.bind(a));
    

    【讨论】:

    • 就是这样。我以为我试过了,但我一定是摸索到足以错过它。我会将此标记为答案。谢谢。
    猜你喜欢
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 2020-01-22
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多