回调是否也称为高阶函数?

thu*_*t13 3 javascript terminology callback higher-order-functions

我想了解的回调高阶功能,但有一个从一个博客帖子的描述,理解JavaScript回调函数,并使用它们,这让我困惑,其含义是,它们是同一个:

回调函数,也称为高阶函数,......

在Quora上逐字回答问题,询问有关JavaScript中高阶函数和回调的简单解释是什么?.

这对我来说没有意义.根据我的理解,高阶函数接收或返回其他函数,回调函数是传递/接收的函数,那么如何同时进行?有什么东西我不理解这种描述吗?

kem*_*ica 5

回调函数

回调函数是作为参数传递给另一个函数的函数,然后在外部函数内调用该函数以完成某种例程或操作.

返回一个函数

返回称为高阶函数的函数的函数

回调函数不是高阶函数,除非它是一个返回函数的函数.

简单的回调:

function toto(callback){
  /** some routine or action before */
  callback();
}

function foo(){
  console.log("I'm a simple callback");
}

toto(foo);
Run Code Online (Sandbox Code Playgroud)

简单的高阶函数

function toto(){
  console.log("I'm a simple Higher-Order Function")
  return function(){
     console.log("I'm the return function");
  }
}

//first log
const func = toto();
//second log
func();
Run Code Online (Sandbox Code Playgroud)

回调也是一个高阶函数:

function toto(callback){
  /** some routine or action before */
  const func = callback();
  func();
}

function foo(){
  console.log("I'm a callback and Higher-Order function");
  
  return function(){
    console.log("Do something...");
  };
}

toto(foo);
Run Code Online (Sandbox Code Playgroud)