我需要使用回调函数创建一个函数,但我找到的解决方案不允许设置函数。
我将解释:
这是我发现的解决方案:
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 */
一些想法?
谢谢
答案 0 :(得分:2)
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?如果确实如此"不工作"对于你,那么你必须更多地解决你不与我们分享的问题,因为该代码按原样运作。