在Javascript中向回调添加参数

在Javascript中向回调添加参数,javascript,callback,closures,bind,Javascript,Callback,Closures,Bind,我需要一种向回调方法添加额外参数的方法,该方法应该具有由某些服务的API文档提供的特定签名 例如,回调应该有一个string类型的参数,但我想在参数中添加一个额外的int 我想到的唯一诀窍就是这样滥用“绑定”: var callbackFunc = originalCallback.bind({extraParam: myInt}, theNeededString) 在回调函数中,我可以得到如下int:this.extraParam 您还有其他提示或技巧吗?您可以使用函数中的参数对象来获取额外

我需要一种向回调方法添加额外参数的方法,该方法应该具有由某些服务的API文档提供的特定签名

例如,回调应该有一个string类型的参数,但我想在参数中添加一个额外的int

我想到的唯一诀窍就是这样滥用“绑定”:

var callbackFunc = originalCallback.bind({extraParam: myInt}, theNeededString)
在回调函数中,我可以得到如下int:
this.extraParam


您还有其他提示或技巧吗?

您可以使用函数中的
参数
对象来获取额外的参数

function test(a){

    for(var i = 0; i<= arguments.length-1; i++) { 
        console.log(arguments[i])
    }
}

test(1,3,4,5)
 1
 3
 4
 5
功能测试(a){

对于(var i=0;i)您将如何处理回调函数中的额外参数?这似乎有点毫无意义,因为回调函数可以引用父上下文的任何变量。只需在创建回调的“父”函数中声明该额外参数即可。例如:var a=10;var callback=function(str){console.log(a);};a=20;callback();-它将记录20。更清楚地说,@Igor的意思是,您可以从内部作用域(如回调本身)引用外部作用域(如定义回调的函数)中的变量。此外,有关详细信息,请参阅此问题:
var callbackFunc = function(theNeededString) { 
   originalCallbackind(theNeededString, myInt); 
};