有时候会有要求某个方法最多可执行一次或指定次数,这里防抖和节流都不是解决问题的办法,下面可以可以让要执行的方法当作回调函数以参数的形式传入。
/**
*@ fn {Function} 要限制执行次数的方法
@ num {Number} 最大可执行次数 default: 1
*/
export const _limitFrequence = (fn, num = 1) => {
let result;
let time = 0;
return function() {
if (time < num) {
time++;
result = fn.apply(this, arguments);
} else {
console.log("超出次数");
}
return result;
};
};