Debounce Example

by Matthew Vasallo

JavaScript

function debounce(fn, delay) {
  var timer = null;
  return function() {
    var context = this,
      args = arguments;
    clearTimeout(timer);
    timer = setTimeout(function() {
      fn.apply(context, args);
    }, delay);
  };
}

const debounce2 = (fn, delay, immediate) => {
  let timer = null;

  return args => {
    clearTimeout(timer);
    timer = setTimeout(() => {
      fn(args);
    }, delay);
  };
};


const debounce3 = (fn, delay, immediate) => {
  let timer = null;
  return args => {
	clearTimeout(timer);
    timer = setTimeout(() => {
      fn(args);
    }, delay);
  };


};

$(window).resize(debounce(function() {
  console.log("resize");
}, 500));

$(window).click(debounce2(() => {
  console.log("clicked");
}, 500));