我需要创建一个带有回调函数的函数,但我找到的解决方案不允许设置该函数。
我来解释一下:
这是我找到的解决方案:
function callbackFunction()
{
alert("hello world");
}
function myFunction(callback)
{
callback()
}
myFunction(callbackFunction()) /* this works */
这就是我需要的:
function myFunction(callback)
{
callback()
}
myFunction(function(){alert("hello world");}); /* this doesn't work */
一些想法?
谢谢
最佳答案
myFunction(callbackFunction()) /* this works */
不,没有。至少不是你想象的那样。这是:
- 调用
callbackFunction
- 将
callbackFunction
的结果传递给myFunction
当 myFunction
尝试调用 callback
时,您可能会收到错误,因为它不是一个函数。但您忽略了这一点,因为您看到了 alert()
并认为它有效。 alert()
发生在调用 myFunction
之前。
您希望将其作为函数引用而不是函数调用传递:
myFunction(callbackFunction) /* this works */
这将产生相同的可见结果(alert()
),但按照预期的操作顺序并且没有错误。
myFunction(function(){alert("hello world");}); /* this doesn't work */
You sure about that?如果这确实对您“不起作用”,那么您没有与我们分享的问题一定还有更多,因为该代码按原样工作。
关于javascript - 如何在 JavaScript 中将函数作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22941545/