Javascript嵌套函数范围

ext*_*oob 4 javascript

我有以下javascript对象,有点伪代码:

{
  dateField: new Date(),
  addMinutes:function(numMinutes)
  {
     CallWebService(numMinutes, function{alert(this.dateField; });
  }
}
Run Code Online (Sandbox Code Playgroud)

问题是CallWebService中的回调函数的范围没有看到对象的dateField属性.有没有办法可以访问它?谢谢!

CMS*_*CMS 8

您需要保留函数的上下文(this值)addMinutes.

有几种方法可以实现它,最简单的方法是简单地存储this一个变量的引用,该变量将可用于回调函数的范围,例如:

var obj = {
  dateField: new Date(),
  addMinutes: function(numMinutes) {
     var instance = this;
     CallWebService(numMinutes, function () {
       alert(instance.dateField);
     });
  }
};
Run Code Online (Sandbox Code Playgroud)