Javascript 从方法引用捕获带有回调函数的

Javascript 从方法引用捕获带有回调函数的,javascript,ajax,setinterval,Javascript,Ajax,Setinterval,我有一个像这样的区间函数- setInterval(function(){ var postData = {'some json data'}; var successCallback = function(data) { console.log(data); } var errorCallback = function(data) { console.log(data); } Rest

我有一个像这样的区间函数-

setInterval(function(){ 
     var postData = {'some json data'};

     var successCallback = function(data) {
           console.log(data);
     }

     var errorCallback = function(data) {
          console.log(data);
     }

     RestClient.invokeRemoteService(postData, this.successCallback, this.errorCallback);

}, 10000);
这是我的
invokeRemoteService()
方法,位于
RestClient
(位于另一个文件中)——

但是,当我从
setInterval()
方法调用
RestClient.invokeRemoteService()
方法时,我总是在
label-1
label-3
label-5
处为
successCallback
errorCallback
获取“未定义”信息。
虽然服务调用做得很好,我在
label-2上得到了正确的数据。
RestClient.invokeRemoteService()
可以很好地用于其他应用程序。但是当我从
setInterval()`调用它时,它不起作用。请提供帮助。

不需要
,您的
成功回调
错误回调
直接在范围内

setInterval(function(){ 
     var postData = {'some json data'};

     var successCallback = function(data) {
           console.log(data);
     }

     var errorCallback = function(data) {
          console.log(data);
     }

     RestClient.invokeRemoteService(postData, successCallback, errorCallback);

}, 10000);

谢谢,这很有效!。但由于我是javascript新手,我无法理解为什么我使用“this”时它不起作用。请您解释一下。
this
用于访问函数调用方上下文。大多数情况下,它是全局上下文(
窗口
),如果函数是对象方法,则该对象实例。在您的例子中,您试图引用作用域/闭包中的变量,这是在不使用
this
的情况下直接完成的。看到和
setInterval(function(){ 
     var postData = {'some json data'};

     var successCallback = function(data) {
           console.log(data);
     }

     var errorCallback = function(data) {
          console.log(data);
     }

     RestClient.invokeRemoteService(postData, successCallback, errorCallback);

}, 10000);