节流防抖简化版
Posted 仲夏你的梦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了节流防抖简化版相关的知识,希望对你有一定的参考价值。
节流
function throttle(fn, delay)
let last = 0 // 上次触发时间
return (...args) =>
const now = Date.now()
if (now - last > delay)
last = now
fn.apply(this, args)
// 测试
function task()
console.log('run task')
const throttleTask = throttle(task, 1000)
window.addEventListener('scroll', throttleTask)
防抖
function debounce(fn, delay)
let timer
return function (...args)
if (timer)
clearTimeout(timer)
timer = setTimeout(() =>
fn.apply(this, args)
, delay)
// 测试
function task()
console.log('run task')
const debounceTask = debounce(task, 1000)
window.addEventListener('scroll', debounceTask)
以上是关于节流防抖简化版的主要内容,如果未能解决你的问题,请参考以下文章
防抖节流一步一步详细讲解,从简单到复杂,从入门到深入了解,再到 Vue 项目中是怎样调用防抖节流方法的