javascript - 如果我们可以在高阶函数体内调用回调函数,为什么还要将它们作为参数传递呢?

标签 javascript function callback

假设我们有一个函数 foo 如下:

function foo(){
    alert("Hello, world!");
}

如果我想从 bar 调用 foo,为什么我们必须将其作为回调传递?

function bar(callback){
    callback();
}

bar(foo);

如果我们能做的只是:

function bar(){
    foo();
}

bar();

最佳答案

因为我们可以传递任何我们想要的函数,只要它与指定的函数签名匹配即可。按照你的方式,当我们编写 bar 时,我们必须提前知道 foo 函数的名称。

这很重要的原因是它会减少 coupling .

关于javascript - 如果我们可以在高阶函数体内调用回调函数,为什么还要将它们作为参数传递呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54737078/

相关文章:

javascript - MongoDB:如何在更新前对查询进行排序

javascript - 为什么我不能用 Typescript (Javascript) 替换换行符

xcode - 尝试重载函数,但是 Xcode 显示错误

c - 为什么 gcc 为用户级和内核级代码产生不同的汇编结果

oracle - SQL避免在select语句中调用同一个函数两次

使用 Parse 进行 iOS 开发 : "Forgot password" button outcome

javascript - 记住用户输入

javascript - http 请求中的回调调用在哪里 (javascript)

javascript - 从另一个函数调用时 phantom.exit(-1) 不起作用

javascript - window.location.reload 不断重新加载