Javascript 如何将多个参数传递给原型中的onSuccess函数?

Javascript 如何将多个参数传递给原型中的onSuccess函数?,javascript,ajax,prototypejs,call,Javascript,Ajax,Prototypejs,Call,我是使用原型库的初学者。我想知道如何将多个参数传递给原型中的onSuccess/onFailure函数? 例如:- new Ajax.Request('testurl',{ method: 'post', parameters: {param1:"A", param2:"B", param3:"C"}, onSuccess: fnSccs, onFailure: fnFail }) 在我的成功职能FNSCC中:-

我是使用原型库的初学者。我想知道如何将多个参数传递给原型中的onSuccess/onFailure函数? 例如:-

new Ajax.Request('testurl',{
        method: 'post',
        parameters: {param1:"A", param2:"B", param3:"C"},
        onSuccess: fnSccs,
        onFailure: fnFail
        })
在我的成功职能FNSCC中:-

function fnSccs(response)
{
    alert(response.responseText);
}

我想向fnSccs函数传递一个新参数。这怎么可能呢。感谢您的帮助。

您可以将成功函数包装成另一个接收所需参数的函数,并返回旧函数:

new Ajax.Request('testurl',{
                method: 'post',
                parameters: {param1:"A", param2:"B", param3:"C"},
                onSuccess: mySuccess('myValue1', 'myValue2'),
                onFailure: fnFail
                })

function mySuccess(param1, param2){
  return function(response){ // Your old success function
    alert(param1);  // The parameter still accessible here
    alert(param2);
    alert(response);
  }
}
当您调用
mySuccess(…)
时,会返回旧函数,但您仍然可以访问参数,因为变量仍然是在外部分配的


您可以查看正在运行的代码段。

如果一个简单的闭包就可以实现,为什么还要创建一个函数呢?onSuces:function(response){myNextStep(response,'a','b');}在新的Ajax.Request()中创建第二个参数时,mySuccess()是否在发送请求之前很久就在这里执行了?对我来说,似乎对键“onSuccess”只分配了mySuccess的返回值,这是未定义的。。。