CoffeeScript / JavaScript如果没有传递参数,我该怎么办?

时间:2013-12-24 03:13:28

标签: javascript coffeescript underscore.js lodash

我认为通过编写执行此操作的代码我很聪明:

someFunction = (arg1, arg2, arg3) ->
  if _.some(arguments, (a) -> a is undefined)
    throw new Error "undefined parameter"

我的意图是,如果其中一个参数未定义,则抛出错误。但我刚刚发现它并不总是有效:如果有人根本没有传入参数,它就不包含在arguments数组中,因此不会被检查。

如果调用此函数(例如someFunction(1, 2)someFunction(1)而不手动检查每个参数),是否有一种简单的方法可以抛出错误?

2 个答案:

答案 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');
}