防抖节流函数

    function _debounce(fn, delay) {
            var delay = delay || 200;
            var timer;
            return function() {
                var th = this;
                var args = arguments;
                if (timer) {
                    clearTimeout(timer);
                }
                timer = setTimeout(function() {
                    timer = null;
                    fn.apply(th, args);
                }, delay);
            };
        }
        function _throttle(fn, interval) {
            var last;
            var timer;
            var interval = interval || 200;
            return function() {
                var th = this;
                var args = arguments;
                var now = +new Date();
                if (last && now - last < interval) {
                    clearTimeout(timer);
                    timer = setTimeout(function() {
                        last = now;
                        fn.apply(th, args);
                    }, interval);
                } else {
                    last = now;
                    fn.apply(th, args);
                }
            };
        }

 

posted @ 2021-04-02 13:54  chengJun—  阅读(46)  评论(0编辑  收藏  举报