如果我有这样的功能
function foo (arg1, arg2, callback) {
// blah blah
callback()
}
我可以这么做:
foo (arg1, arg2)
有时我发现我不能,这里发生了什么?感谢。
答案 0 :(得分:3)
问题是callback()
如果只传入两个参数会抛出错误,因为它有效地执行了undefined()
如果您正在编写该功能,您可以:
callback && callback()
意味着只有在它存在的情况下才会被调用(对于更多的故障保护,请检查它是否为函数)。
如果你不控制它,你可以传入一个空函数:
foo(arg1, arg2, function(){});
答案 1 :(得分:2)
如果没有将第三个参数传递给foo,“callback”的值将为“undefined”。因此,当您调用callback()函数时,您可能会遇到脚本异常。