【发布时间】:2021-10-03 13:33:58
【问题描述】:
我需要一个函数 limitCalls (fn, maxCalls),它接受一个函数 fn 并返回一个新函数,该函数的调用次数不超过 maxCalls 中指定的次数。测试示例:
it('limitCalls', () => {
const makeIncrement = () => {
let count = 0;
return () => {
count += 1;
return count;
};
};
const limitedIncrementA = limitCalls(makeIncrement(), 3);
expect(limitedIncrementA()).toBe(1);
expect(limitedIncrementA()).toBe(2);
expect(limitedIncrementA()).toBe(3);
expect(limitedIncrementA()).toBe(undefined);
expect(limitedIncrementA()).toBe(undefined);
const limitedIncrementB = limitCalls(makeIncrement(), 1);
expect(limitedIncrementB()).toBe(1);
expect(limitedIncrementB()).toBe(undefined);
expect(limitedIncrementB()).toBe(undefined);
});
我有:
var calls = 0;
export default function limitCalls(fn, maxCalls) {
if (calls >= maxCalls) {
return undefined;
}
calls += 1;
return fn();
}
而且错误是有限的IncrementA 不是函数。请帮助我实现它。
【问题讨论】:
标签: javascript function testing