2015-02-11 60 views
-1

我试图创建参数callbackvaluevalue作为参数调用回调函数callback功能echo的功能。使调用一个“回调函数”

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

到目前为止,我有这样的:

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

module.exports.echo = echo; 
+1

javascript中的函数是对象。它们可以像其他任何东西一样传递。 – 2015-02-11 17:19:06

+1

如果你有它的工作,究竟是什么问题? – Bergi 2015-02-11 17:20:24

+0

也许另见http://stackoverflow.com/questions/3523628/newbie-approach-what-is-a-javascript-callback-function – Bergi 2015-02-11 17:23:09

回答

1

的回调只是碰巧举得起“赎回”的变量。除此之外,没有更多的魔力。

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

foo(); 

上面的代码片断显示函数是数据或数据可以是可调用函数。正如数据可以是字符串或可打印为字符串一样。

在JS和许多其他高级动态语言中,函数和其他数据之间的区别仅仅是它可以被调用。它可以分配,存储,创建成员,作为参数返回并传入。在较低级别的语言中,您正在存储PC跳转到的指针(函数指针)。

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

+0

“碰巧可以调用的变量”只是一个*函数*。还有一些东西会使函数参数成为[callback](https://en.wikipedia.org/wiki/Callback_(computer_programming)) – Bergi 2015-02-11 17:25:00

+0

您的示例将如何处理我的代码 – 2015-02-11 17:25:04

+0

@Bergi - 唯一使得它的一个回调就是你的代码稍后可能会被你传入的一些代码调用 - 一个事件,一个反应器/循环,一个函数构造。否则没有别的特别之处。这里重要的是OP询问“创建一个调用回调的函数” - 并且真正需要的是一个可调用的参数,或者包含一个具有可调用成员的对象。任何其他“特殊待遇”都不需要。 – 2015-02-12 14:10:42

0

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

这是经常使用的异步代码:
通常你会调用一个函数,等待它完成,功能返回一个值回,但与异步进程,这将无法正常工作。所以你需要回调。当调用异步函数时,脚本将在主线程继续执行时在后台执行此操作。所以你不能以正常的方式返回一个值,因为同步函数会暂停主线程直到完成。当异步函数完成时,将使用回调来处理结果。

+0

不完全“完成时”。你可以用一堆回调来设置一个对象,并传入一个框架或者在不同阶段调用不同回调的东西。也许更好的表述为“当代码到达特定状态时使用的东西,并且您想要发送另一个函数” - 它提供了其他代码,可以将“钩子”添加到代码中以进一步处理状态。 – 2015-02-12 14:12:43

相关问题