防抖,节流函数

// 防抖函数
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)
  }
}
posted @ 2023-07-12 17:18  青老师  阅读(9)  评论(0编辑  收藏  举报