高階函數 - 函數節流
阿新 • • 發佈:2017-07-11
turn this urn ons function val || self self.
/** * 函數節流 - 限制函數被頻繁調用 * @param {Function} fn [需要執行的函數] * @param {[type]} interval [限制多長的時間再重復執行fn] */ var throttle = function(fn, interval) { var __self = fn, timer, firstTime = true;return function() { var args = arguments, __me = this; if (firstTime) { __self.apply(__me, args); return firstTime = false; }; if (timer) { return false; }; timer= setTimeout(function() { clearTimeout(timer); timer = null; __self.apply(__me, args); }, interval || 500); }; }; // test function A() { console.log(‘A‘); }; var A2 = throttle(A, 1000); setInterval(A2,100);
高階函數 - 函數節流