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