如何计算函数的参数个数,在javascript中,INCLUDING可选参数?

Ped*_*ado 5 javascript ecmascript-6

例如,如果我在javascript中有以下功能:

var f1 = function(a, b, c) {}
console.log(f1.length); // 3
Run Code Online (Sandbox Code Playgroud)

但是使用此功能,输出是不同的:

var f2 = function(a, b, c = 6) {}
console.log(f2.length); // 2
Run Code Online (Sandbox Code Playgroud)

如何计算f2INCLUDING可选参数的参数数量?

Ros*_*son -1

我不知道这是否是最好的方法但是怎么样

f2.toString().split(',').length
Run Code Online (Sandbox Code Playgroud)

编辑:好吧,如果函数内部有逗号,这将不起作用,可能需要更多地对其进行正则表达式。

怎么样:

f2.toString().match(/^function\s*\(([^)]+)\)/)[1].split(',').length
Run Code Online (Sandbox Code Playgroud)