如果您使用 Function.length
属性,您可以获得函数期望的参数总数。
但是,根据文档(以及实际尝试),它不包括默认参数。
This number excludes the rest parameter and only includes parameters before the first one with a default value - Function.length
我是否有可能以某种方式(从函数外部)获得一个包含默认参数的计数?
最佳答案
也许你可以自己解析它,比如:
function getNumArguments(func) {
var s = func.toString();
var index1 = s.indexOf('(');
var index2 = s.indexOf(')');
return s.substr(index1 + 1, index2 - index1 - 1).split(',').length;
}
console.log(getNumArguments(function(param1, param3 = 'test', ...param2) {})); //3
关于javascript - 获取函数参数长度,包括默认参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42899083/