const debounce1 = (func, delay) => { let timeout return () => { console.log(timeout, '--timeout--'); if (timeout) { clearTimeout(timeout) } else { timeout = setTimeout(function () { func(timeout) }, delay) } } }
const log = debounce1((timeout) => { console.log(timeout) }, 5000)
log() log() log()
结果 // undefined '--timeout--' // 1 '--timeout--' // 1 '--timeout--'