例如,如果我有一个如下定义的函数:
function set_name(name) {
return name;
}
但我这样调用它(出于个人原因这样称呼):
set_name.apply(this, ['Duvdevan', 'Omerowitz']);
如果 set_name
函数接受了超过 1
个参数/实参,检查和阻止该函数进一步执行的最佳实践是什么?
另外,我必须注意,我正在尝试找出一种方法来在调用 .apply
函数之前检查这一点:
function set_name(name) {
// if(arguments.length > 1) console.log('This is not what I need though.');
return name;
}
var args = ['Duvdevan', 'Omerowitz'];
// Now, at this point I'd like to check if the set_name function can accept two arguments.
// If not, I'd console.log or return new Error here.
set_name.apply(this, args);
这可行吗?
最佳答案
您可以通过 Function.length
获取函数期望的参数数量:
function set_name(name) {
return name;
}
var args = ['Duvdevan', 'Omerowitz'];
console.log(set_name.length); // 1
if (args.length > set_name.length) {
throw new Error('Too many values'); // throws
}
set_name.apply(this, args); // not executed
关于javascript - 如何检查 JavaScript 函数定义中是否定义了参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40537636/