防抖和节流的理解
1、防抖
概念:事件触发定义的函数后一段时间后才会执行,在此期间触发会重新计时,即只执行最后一次触发。
目的:为了防止用户连续触发事件,函数重复执行导致抖动。
非立即执行防抖函数
* @param {Function} func
* @param {number} delay
* @returns
*/
function debounce(func, delay) {
let timeout
return function () {
const _this = this
const args = [...arguments]
if (timeout) {
clearTimeout(timeout)
}
timeout = setTimeout(() => {
func.apply(_this, args)
}, delay)
}
}