防抖,节流函数
// 防抖函数 function debounce(func, wait) { // 创建一个定时器 let timeout // 返回一个函数,这个函数会在一个时间区间结束后调用 func return function() { // 如果定时器还在运行,则清除定时器 timeout && clearTimeout(timeout) // 否则,设定定时器,等待 wait 毫秒后执行 func 函数 timeout = setTimeout(() => { // 执行 func 函数 func.apply(this, arguments) }, wait) } }
// 节流函数
function throttle(func, wait) {
// 创建一个定时器
let timeout = null
// 返回一个函数,这个函数会在一个时间区间结束后调用 func
return function() {
// 如果定时器还在运行,则跳过
if (timeout) return
// 否则,设置定时器,等待 wait 毫秒后执行 func 函数
timeout = setTimeout(() => {
// 执行 func 函数
func.apply(this, arguments)
// 清空定时器
timeout = null
}, wait)
}
}