JavaScript Closure Debounce

An elegant JavaScript debounce function, I saw here.

function debounce(ms, fn) {
  let timer
  return (...args) => {
    clearTimeout(timer)
    timer = setTimeout(() => fn(...args), ms)
  }
}