我认为通过编写执行此操作的代码我很聪明:
someFunction = (arg1, arg2, arg3) ->
if _.some(arguments, (a) -> a is undefined)
throw new Error "undefined parameter"
我的意图是,如果其中一个参数未定义,则抛出错误。但我刚刚发现它并不总是有效:如果有人根本没有传入参数,它就不包含在arguments
数组中,因此不会被检查。
如果调用此函数(例如someFunction(1, 2)
或someFunction(1)
而不手动检查每个参数),是否有一种简单的方法可以抛出错误?
答案 0 :(得分:2)
使用arguments.length
function doSomething(arg1,arg2,arg3){
if(arguments.length!=3){
throw new Error("wrong param count");
}
}
答案 1 :(得分:1)
您可以查看arguments.length
。
function someFunction(arg1, arg2, arg3) {
if (arguments.length !== 3) throw new Error('undefined parameter');
}