0

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

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

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

someFunction(1, 2)如果调用此函数或someFunction(1)不手动检查每个参数,是否有一种简单的方法来引发错误?

4

2 回答 2

2

Use arguments.length

function doSomething(arg1,arg2,arg3){
    if(arguments.length!=3){
          throw new Error("wrong param count");
    }

}
于 2013-12-24T03:21:54.237 回答
1

You could check arguments.length.

function someFunction(arg1, arg2, arg3) {
    if (arguments.length !== 3) throw new Error('undefined parameter');
}
于 2013-12-24T03:21:12.993 回答