Javascript 为成功回调使用不同的参数

Javascript 为成功回调使用不同的参数,javascript,jquery,Javascript,Jquery,我正在处理别人的代码。我在jQuery中有一个简单的AJAX调用: function getWSData (which, data, idVR) { if(which == 'verCandAll') { funcSuccess = verCandSuccess; data = {'name' : 'val'}; } else { funcSuccess = verElseSuccess; data = {'name

我正在处理别人的代码。我在jQuery中有一个简单的AJAX调用:

function getWSData (which, data, idVR)
{
   if(which == 'verCandAll')
   {
      funcSuccess = verCandSuccess;
      data = {'name' : 'val'};
   }
   else 
   {
      funcSuccess = verElseSuccess;
      data = {'name2' : 'val2'};
   }

   $.ajax({
      type: 'POST',
      url: wsURL,
      data: data,
      success: funcSuccess,
      error:function ()
      {
           $("#msg").ajaxError(function()
           {
               popWaiting(false);
               alert(verGenericCallError);
           });
      },
      dataType: 'xml'
   });
}

function verCandSuccess(xml){ ... }

function verElseSuccess(xml){ ... }
这真的很简单。我唯一的问题是
success
回调。在
verElseSuccess
的情况下,我将向该函数发送第二个参数,更准确地说,我将处理
idVR
(一个
getWSData
的输入参数)。如何实现这一点?

使用下划线.js函数:

funcSuccess = _.partial(verElseSuccess, idVR);
使用下划线.js函数:

funcSuccess = _.partial(verElseSuccess, idVR);

要实现此目标,您可以执行以下操作:

...
if(which == 'verCandAll') {
    ...
}
else {
    // create an anonymous function that calls verElseSuccess with a second argument
    funcSuccess = function(xml) {
       verElseSuccess(xml, idVR);
    };
    data = {'name2' : 'val2'};
}
...

要实现此目标,您可以执行以下操作:

...
if(which == 'verCandAll') {
    ...
}
else {
    // create an anonymous function that calls verElseSuccess with a second argument
    funcSuccess = function(xml) {
       verElseSuccess(xml, idVR);
    };
    data = {'name2' : 'val2'};
}
...