function throttle(fn, delay) { let flag = true, timer = null; return function(...args) { let context = this; if (!flag) return; flag = false; clearTimeout(timer); timer = setTimeout(function() { fn.apply(context, args); flag = true; }, delay); } }