节流
const throttle = (fn, time) => {
let 冷却中 = false
return (...args) => {
if(冷却中) return
fn.call(undefined, ..args)
冷却中 = true
setTimeout(() => {
冷却中 = false
}, time)
}
}
const throttle = (f, time) => {
let timer = null
return (...args) => {
if (timer) return
f.call(undefined, ...args)
timer = setTimeout(() => {
time = null
}, time)
}
}
使用方法
const f = throttle(() => {
console.log('hi')
}, 3000)
f()
f()
防抖
防抖:
const debounce = (fn, time) => {
let 回城计时器 = null
return (...args) => {
if (回城计时器 !== null) {
clearTimeout(回城计时器)
}
回城计时器 = setTimeout(() = > {
fn.call(undefined, ...args)
回城计时器 = null
}, time)
}
}
使用方法
const tp = debounce(() => {
console.log('回城成功')
}, 3000)