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

问题描述 投票:0回答:1

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

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

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

function bar(callback){
    callback();
}

bar(foo);

如果我们能做的就是:

function bar(){
    foo();
}

bar();
javascript function callback
1个回答
1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.