如果我们只能在高阶函数的主体中调用它们,为什么要将回调函数作为参数传递



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

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

如果我想从bar调用foo,为什么我们必须以回调?

将其传递?
function bar(callback){
    callback();
}
bar(foo);

如果我们所能做的只是:

function bar(){
    foo();
}
bar();

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

这很重要的原因是它减少了耦合。

最新更新