如何计算传递的回调函数中的参数数量?

时间:2019-06-24 06:47:03

标签: javascript

使用第三方库时,我经常在回调中找到一个可选参数。

例如,在Mocha中,当存在回调done参数时,它会等待done被调用,然后再转到另一个测试用例。

someFunction(function(done) { /** code **/ })
someFunction(function() { /** this behaves differently than above **/ })

如何实现相同的行为?

1 个答案:

答案 0 :(得分:3)

您可以检查功能对象的length属性

console.log((()=>42).length);    // 0
console.log(((x,y)=>42).length); // 2

但是请注意,您不能确定该函数将要访问多少,因为还可以在Javascript非箭头arguments中使用function和箭头内的“ rest”参数(.length属性中不计算在内)。