我有一个可以传递完整功能的功能.如果不是null,我不想调用完成,所以我这样做
function queryJS(sql, success, error, complete) {
...
...
if (complete !== null) complete()
...
...
Run Code Online (Sandbox Code Playgroud)
当我用3个参数调用函数时,例如:
queryJS("SELECT BLAH FROM TABLE", mysuccess, myerror)
Run Code Online (Sandbox Code Playgroud)
我明白了:
TypeError: complete is not a function
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
什么是覆盖没有完成功能的情况的最佳方法.
谢谢
一个空的参数总是如此undefined.所以你应该检查一下是否complete是一个函数:
if (typeof complete === "function") {
complete();
}
Run Code Online (Sandbox Code Playgroud)
要为无效complete值抛出错误,您可以检查undefined或为参数数组长度:
if (typeof complete !== "undefined") {
complete();
}
if (arguments.length >= 4) {
complete();
}
Run Code Online (Sandbox Code Playgroud)