如何检查参数是否在JavaScript函数定义中定义

How to check if argument is defined in function definition in JavaScript?

本文关键字:定义 JavaScript 函数 是否 参数 何检查 检查      更新时间:2023-09-26

例如,如果我有一个这样定义的函数:

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