使用其上下文调用原始回调函数

时间:2018-05-06 21:39:44

标签: javascript callback this

我有这段代码:

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

1 个答案:

答案 0 :(得分:1)

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

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