首页 > 解决方案 > 如何计算传递的回调函数中的参数个数?

问题描述

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

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

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

我怎样才能实现相同的行为?

标签: javascript

解决方案


可以查看length函数对象的属性

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

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


推荐阅读