function abc(arg1,arg2, callback){
console.log(arg1 + arg2) // I am doing something really interesting
if(callback){
callback(arg1+ arg2)
}
}
function add(){
console.log("from call back " + arguments[0])
}
var a =10;
abc(1,2, add)
这工作正常,但如果我们需要向回调发送一些额外的参数,我们应该怎么做??
在这里,除了 (arg1+ arg2)
我还需要从 abc
的调用者设置一些其他参数到回调
还有,abc(1,2,add)
和 abc(1,2,add())
有什么区别??
谢谢:)
最佳答案
abc(1,2,add)
=> 将函数参数指定为“函数类型”。这就像给出一个指向函数的指针,以便稍后调用它。abc(1,2,add())
=> 调用add()
函数并将其返回值作为参数。
您是否需要回调支持的不仅仅是一个参数?由于 JavaScript 是一种动态语言,只需使用更多参数调用相同的回调函数即可:
回调(1,2,3,4)
回调(1,2,3,4,5)
回调(1,2,3,4,5,6)
。
JavaScript 对函数签名并不严格:函数具有与调用者提供给它们的参数一样多的参数。
例如,如果您有这样的回调函数:
function(a, b) {
}
然后你这样调用它:
function("hello"); // Where's the second argument??
JavaScript 不会提示。简单的 b
将是未定义的。
关于javascript - 我们可以给一个带参数的回调吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13985910/