假设我们有一个函数 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/