如何将多个参数传递到javascript回调函数中?
Javascript代码:如何将多个参数传递到javascript回调函数中?,javascript,callback,Javascript,Callback,Javascript代码: function doSomething(v1,v2){ //blah; } function SomeClass(callbackFunction,callbackFuncParameters(*Array*))={ this.callback = callbackFunction; this.method = function(){ this.callback(parameters[0],parameters[1]) // *.*
function doSomething(v1,v2){ //blah; }
function SomeClass(callbackFunction,callbackFuncParameters(*Array*))={
this.callback = callbackFunction;
this.method = function(){
this.callback(parameters[0],parameters[1]) // *.*
}
}
var obj = new SomeClass( doSomething, Array('v1text','v2text') );
问题是如果我将函数doSomething更改为
function doSomething(v1,v2,v3){ //blah; }
我必须将SomeClass
中的相应行(标记为/*.
)更改为
this.callback(parameters[0],parameters[1],parameters[2]);
无论“doSomething”函数的参数数量如何更改,都可以采取哪些措施避免更改(*.*)
行
非常感谢 您可能想使用
要应用的第一个参数指示回调中“this”的值,可以设置为任何值。现在可用的另一种方法是使用 下面是OP的完整示例:
function doSomething(v1,v2) {
console.log('doing', {v1, v2});
}
function SomeClass(callbackFunction, callbackFuncParameters) {
this.callback = callbackFunction;
this.method = function(){
this.callback(...callbackFuncParameters); // spread!
}
}
var obj = new SomeClass( doSomething, Array('v1text','v2text') );
obj.method()
// output: doing {v1: "v1text", v2: "v2text"}
我对如何使用这个功能有点困惑。我要做的是将一个函数传递给一个回调函数,如-myfunction(function(myele){//use myele})。因此,我在这里传递一个anon回调函数,并将myele参数传递给它。我将如何使用上面的代码来执行此操作?
this.callback(...callbackFuncParameters)
function doSomething(v1,v2) {
console.log('doing', {v1, v2});
}
function SomeClass(callbackFunction, callbackFuncParameters) {
this.callback = callbackFunction;
this.method = function(){
this.callback(...callbackFuncParameters); // spread!
}
}
var obj = new SomeClass( doSomething, Array('v1text','v2text') );
obj.method()
// output: doing {v1: "v1text", v2: "v2text"}