我一直在更新我前段时间写的一个库,并且在这样做的过程中意识到在严格模式下测试时会出现意外错误。这些是因为在某些 API 函数的开头进行检查,如果参数数量不正确,这些函数会抛出错误。这是一个例子:
if(arguments.length < 2){
throw new Error("Function requires at least two arguments.");
}
第二个参数绝对可以是任何值,因此检查 null/undefined 并不表示参数是否丢失或无效。但是,如果缺少参数,则绝对存在使用错误。如果可能的话,我想将其报告为抛出Error
。
不幸的是,该arguments
对象在严格模式下是不可访问的。尝试在上面的代码片段中访问它会产生错误。
如何在严格模式下执行类似的检查,而不访问arguments
对象?
编辑:Nina Scholz错误地将这个问题标记为重复。