JavaScript函数防抖

函数防抖(重点)

根据一些需求需要在过一段时间之后执行函数,让函数的频率降下来

function debounce(callback, delay) {
  var timerId; //每次调用,记录的都是最后一个计时器
  //函数防抖会返回一个函数,参数通过arguments传入,
  return function () {
    // 把arguments转换成真数组
    var args = Array.prototype.slice.call(arguments);
    clearTimeout(timerId); //清除最后一个计时器
    timerId = setTimeout(function () {
      callback.apply(this, args);
    }, delay);
  };
}


eg:
function sum(a, b) {
  console.log(a + b);
}
var newSum = debounce(sum, 1000); //会返回一个新函数,
这个新函数就是经过函数防抖后的函数

你可能感兴趣的:(javascript,前端,开发语言)