參考連結:https://mp.weixin.qq.com/s/Vkshf-nEDwo2ODUJhxgzVA
區別:防抖以最後一次觸發的事件為準;節流以第一次觸發的事件為準,兩者都可以用定時器實現;兩者都用通過返回一個函式給外面,形成閉包來實現
程式碼:
防抖:
function throttle(fn, delay) {
var timer = null
return function() {
timer && clearTimeout(timer)
timer = setTimeout(fn, delay)
}
}複製程式碼
節流:
function debounce(fn, delay) {
var timer = null
return function() {
var context = this
var args = arguments
if (!timer) {
timer = setTimeout(() => {
fn.apply(context , args )
timer = null
}, delay)
}
}
}複製程式碼