防止短时间js 重复执行

function debounce(fn, delay) {
// 持久化一个定时器 timer
    let timer = null;
    // 闭包函数可以访问 timer
    return function() {
    // 通过 'this' 和 'arguments'
    // 获得函数的作用域和参数
    let context = this;
    let args = arguments;
    // 如果事件被触发,清除 timer 并重新开始计时
    clearTimeout(timer);
    timer = setTimeout(function() {
    fn.apply(context, args);
    }, delay);
    }
}

 

posted @ 2017-03-13 23:40  N1900  阅读(1539)  评论(0编辑  收藏  举报