/* *函數節流(throttle):函數在一段時間內屢次觸發只會執行第一次, *在這段時間結束前,無論觸發多少次也不會執行函數。 */ throttle(fn, gapTime) { if (gapTime == null || gapTime == undefined) { gapTime = 1500 } let _lastTime = null; // 返回新的函數 return function () { let _nowTime = +new Date() if (_nowTime - _lastTime > gapTime || !_lastTime) { fn.apply(this, arguments) //將this和參數傳給原函數 _lastTime = _nowTime } } }
使用:javascript
throttle(()=>{ console.info('一秒內,屢次調用只執行一次'); },1000)