在回调中调用方法

时间:2016-02-15 13:13:24

标签: javascript node.js class-method

我有这个Try课程:

function Try () {
  console.log('Start')
  this.Something( function() {
    console.log('asd')
    this.Some()
  })
}
Try.prototype.Something = function (callback) {
  console.log('hi all')
  callback()
}
Try.prototype.Some = function () {
  console.log('dsa')
}

但是当我尝试在回调部分中调用Some方法时,它会给出一个错误,即this.Some is not a function。问题是什么?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

this的范围在不同的function内是不同的,即使它是内部function

您需要在this中保留self外部函数并将其设为

function Try () {
  console.log('Start')
  var self = this;
  self.Something( function() {
    console.log('asd')
    self.Some();
  })
}