gpt4 book ai didi

javascript - 如何检查参数是否在 JavaScript 的函数定义中定义?

转载 作者:行者123 更新时间:2023-11-29 19:09:06 29 4
gpt4 key购买 nike

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

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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com