javascript - 我们可以给一个带参数的回调吗?

标签 javascript callback arguments


    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/

相关文章:

javascript - 混合搭配声明式和程序化声明? (道场/JS)

c# - 如何使用 Dynamic 进行回调?

javascript - 关闭时未执行 jquery 对话框的 beforeclose 回调

javascript - 什么是 "callback hell"以及 RX 如何以及为何解决它?

Android 内容解析器查询占位符整数

postgresql - PostgreSQL 中函数参数的约束

javascript - cytoscape.js 中的欧拉电路/路径无向图

javascript - 在 ServiceWorker 中识别请求的页面来源

javascript - 如何在 Angularjs 中将对象插入数组的数组中

Python argparse 在一个参数中具有多个操作