当继续触发事件时,肯定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的工夫到来之前,又一次触发了事件,就从新开始延时。举个栗子,继续触发scroll事件时,并不执行handle函数,当1000毫秒内没有触发scroll事件时,才会延时触发scroll事件。

/* *  description: 在vue中应用的防抖函数 *  param fnName {String}  函数名 *  param param {String}  参数 *  param time {Number}    延迟时间 *  return: 解决后的执行函数 */function VueDebounce(fnName ,param, time) {  let timeout = null;  return function() {    if (timeout) {      clearTimeout(timeout);    }    timeout = setTimeout(() => {      this[fnName](param);    }, time);  };}