【发布时间】:2013-07-20 17:45:22
【问题描述】:
想象一下这样的代码:
function foo(data) {
// ... do something with data
}
function do(userInput, callback) {
callback(userInput);
}
function doWithReturn(userInput, callback) {
return callback(userInput);
}
// ...
do('Hello, World', foo);
doWithReturn('Hello, World', foo);
使用普通的 do() 而不是 doWithReturn() 有什么好处吗?
我问是因为,假设我们不知道 foo() 在内部做了什么(即它可能有一个 return 语句,也许它只是触发一个愚蠢的alert(data)),使用 doWithReturn 调用 foo() 总是只是似乎“更安全”,因为如果 foo() 恰好返回一个值,那么不使用 doWithReturn 显然是错误的。
【问题讨论】:
-
完全取决于您编写的函数的性质。当您的
do/doWithReturn函数更像是一个真实世界的应用程序时,是否应该传递返回值通常会变得更加清晰。 -
在不知道内部工作原理的情况下使用函数是可以的,但我不会在不知道函数返回什么的情况下使用函数...
标签: javascript callback return