js 函數節流(throttle)

/*
     *函數節流(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)
相關文章
相關標籤/搜索