我希望在接受回调函数之前对其进行评估。这意味着我至少需要知道已接受参数的数量-如果数量不匹配,我将在控制台中留下警告。
但是我无法找出,JavaScript函数对象是否具有可帮助我获取该信息的属性。
那么,能否在不解析函数字符串的情况下实现这一点(这样做不值得)?
我希望在接受回调函数之前对其进行评估。这意味着我至少需要知道已接受参数的数量-如果数量不匹配,我将在控制台中留下警告。
但是我无法找出,JavaScript函数对象是否具有可帮助我获取该信息的属性。
那么,能否在不解析函数字符串的情况下实现这一点(这样做不值得)?
一个函数拥有一个length
属性,它会告诉你函数接收的命名参数的数量。注意,即使函数不给这些变量命名,它仍然可以使用arguments
变量来访问这些变量;length
并不考虑这一点(也没有替代的方法)。
function foo(a, b) {
for (var i=0;i<arguments.length;i++) {
console.log(arguments[i]);
}
}
console.log(foo.length); // reports 2, even though `foo` can access all your arguments!
length
。请自行检查:[((a) => {}), ((a=1) => {})].forEach(f => console.log(\
f="${f.toString()}", length=${f.length}`))` - Domi