是否有一个工具可以帮助我检测javascript函数何时被传递的参数太少?据我所知,JSLint和JSHint都没有提供此功能。
如果我写的话,请说清楚:
some_method = function(x,y) {
// ..do stuff
}
some_method(2);
我希望得到警告,我可能不得不传递另一个论点。
答案 0 :(得分:1)
你不能这样做,所有参数都是可选的,你可以将无限量的参数传递给无参数函数(通过参数数组)。
但您可以使用arguments数组手动测试自己的方法。您必须单独将它添加到每个方法,因为您无法反映方法签名中的参数数量。因此,对于这种特殊情况,您将使用:
function test(x, y) {
if (arguments.length !== 2)
{
console.log('error, invalid amount of args');
}
}
test(1); // this will trigger the console.log and type the error.
如果你真的需要参数检查,可以使用类似TypeScript的东西,默认情况下需要参数。
答案 1 :(得分:-1)
如果你想在函数中获得一些可选的param,你可以将params作为数组传递,并且可以验证每个数组的值。 像这样:
function action(param)
{
var total_params = param.length;
console.log(param);
// do stuff
}
action(Array('param01',02, true, 'param04'));