如何在lodash中获得一个curried函数的arity?
考虑:
const uniqueBy = curry((predicate, data) => {});
在我写作的测试中,我想知道uniqueBy
函数的优点以及部分应用uniqueBy
函数的arity。
const partiallyApplied = uniqueBy(x => x.get('name'));
expect(partiallyApplied.length).to.equal(1);
等等。
在普通JS中,我们可以uniqueBy.length
。在lodash中执行相同操作始终会返回0
,因为我们最终会计算wrapper()
函数的arity。
在lodash中有定义的方法吗?
答案 0 :(得分:3)
Lodash将其咖喱和其他函数包装器的arity存储在未公开的WeakMap的元数据中。它避免了使用.length创建函数,因为这是额外的开销(通常条件为10 args)并且可能因ES6默认参数而变得复杂。