javascript函数是强制回调

时间:2011-03-22 04:09:58

标签: javascript function

如果我有这样的功能

function foo (arg1, arg2, callback) {
  // blah blah
  callback()
}
我可以这么做:

foo (arg1, arg2)

有时我发现我不能,这里发生了什么?感谢。

2 个答案:

答案 0 :(得分:3)

问题是callback()如果只传入两个参数会抛出错误,因为它有效地执行了undefined()

如果您正在编写该功能,您可以:

callback && callback()

意味着只有在它存在的情况下才会被调用(对于更多的故障保护,请检查它是否为函数)。

如果你不控制它,你可以传入一个空函数:

foo(arg1, arg2, function(){});

答案 1 :(得分:2)

如果没有将第三个参数传递给foo,“callback”的值将为“undefined”。因此,当您调用callback()函数时,您可能会遇到脚本异常。