回调函数和在另一个函数中调用一个函数有什么区别?

There is any difference between callback function and calling a function inside another function?

举个例子:

function foo(callback){
        callback();
        baz();
  }

  function baz() {
        console.log('Hello from baz');  
   }

   foo(baz);

看起来他们在做同样的任务。或者回调和在另一个函数中调用一个函数是一回事?

基本上,它们做的是一样的,但是回调非常有用,因为您可以用许多不同的回调调用同一个函数。这使您的 foo 函数更具可重用性。

在您的示例中,两种方法的作用相同。

但是,您可以将不在函数范围内的函数作为参数传递。 例如

function foo(callbackFn){
    callbackFn();
    // function test is undefined here, since it was declared in another scope 
}

function bar(){
    // test is only available in bar's scope
    function test(){
        console.log("test");
    }
    foo(bar);
}

除非您没有按照回调的应有方式使用回调。回调应该从先前的函数中获取中间结果。这是一个例子

function add (a, b) {
  return a + b;
}

function subtract (a, b) {
  return a - b;
}

这是回调

function doLater (val) {
  if (val > 0) {
    console.log("positive");
  } else if (val ==) {
    console.log("zero");
  } else console.log ("negative");
}

function doOp (a, b, mathOp, callback) {
  var res = mathOp(a,b);
  callback(res);
}

doOp (2,3, add, doLater);

对比

doOp (2,3,subtract, doLater);