Javascript 生成一个调用';回调函数';

Javascript 生成一个调用';回调函数';,javascript,function,callback,Javascript,Function,Callback,我正在尝试创建一个函数echo,该函数使用参数callback和value调用回调函数callback,参数为value 有人能简单地解释回调函数吗?它几乎是一个嵌套函数吗 到目前为止,我有: function echo(value, callback) { return callback(value); } module.exports.echo = echo; 回调仅仅是一个变量,它恰好包含一些“可调用”的内容。没有比这更神奇的了 var myfunc = function()

我正在尝试创建一个函数
echo
,该函数使用参数
callback
value
调用回调函数
callback
,参数为
value

有人能简单地解释回调函数吗?它几乎是一个嵌套函数吗

到目前为止,我有:

function echo(value, callback) {
    return callback(value);
}

module.exports.echo = echo;

回调仅仅是一个变量,它恰好包含一些“可调用”的内容。没有比这更神奇的了

var myfunc = function() {
  alert("I was called");
}
var foo = myfunc;

foo();
上面的代码片段显示函数是数据,或者数据可以是可调用函数。正如数据可以是字符串,也可以作为字符串打印

在JS和许多其他高级动态语言中,函数和其他数据之间的区别仅仅在于它可以被调用。它可以作为参数进行分配、存储、创建成员、返回和传递。在低级语言中,您要存储一个指针,以便PC跳转到(函数指针)


另一种方式是将其视为一个占位符,即当另一个代码达到特定状态时可以调用的函数。我说可能是-其他代码可能无法达到该状态,因为它是有条件的-例如错误回调。

回调函数是在函数完成后,您希望将结果返回给另一个函数时使用的函数

这经常用于异步代码:

通常,您会调用一个函数,等待它完成,然后函数返回一个值,但是对于异步进程,这将不起作用。所以你需要回电话。当异步函数被调用时,脚本将在后台执行,而主线程将继续。因此,不能以正常方式返回值,因为同步函数将暂停主线程,直到完成。异步函数完成后,将使用回调来处理结果。

javascript中的函数是对象。它们可以像其他任何东西一样传递。如果你让它工作,到底是什么问题?也许你也会看到它不工作。。我的意思是说,我正在使用cmd line js,但没有做什么,您希望做什么?如果用一个值和一个回调调用echo,那么看起来回调将用该值调用。“恰好包含可调用内容的变量”只是一个函数。还有一些事情使函数参数成为一个参数,你的例子如何处理我的问题code@Bergi-使其成为回调的唯一原因是,您的代码可能稍后被您传递到的某个代码调用-一个事件、一个反应器/循环、一个函数构造。除此之外,它没有什么特别之处。这里重要的是OP要求“生成一个调用回调的函数”——它真正需要的是一个可调用的参数,或者包含一个对象,该对象具有可调用的成员。不需要任何其他“特殊处理”。@DANIELWHITE您的代码显示您正在创建一个函数,该函数接受回调函数和用于调用它的值,在运行时将调用回调函数。您是指委托吗?您是否正在尝试创建要在回调中使用的绑定函数?绑定到值?不严格“完成时”。您可以使用一组回调设置一个对象,并将其传递到一个框架或在不同阶段调用不同回调的东西中。也许更好的措辞是“当代码达到特定状态时使用的东西,并且您希望向另一个函数发送信号”——它为其他代码提供了向代码中添加“钩子”以额外处理状态的能力。