前言


我是歌谣 我有个兄弟 巅峰的时候排名c站总榜19 叫前端小歌谣 曾经我花了三年的时间创作了他 现在我要用五年的时间超越他 今天又是接近兄弟的一天人生难免坎坷 大不了从头再来 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷


导语


手写防抖


#yyds干货盘点# 【js学习笔记三十四】手写防抖_前端#yyds干货盘点# 【js学习笔记三十四】手写防抖_前端_02

代码部分

function geyao(fn, delay) {
//timer是一个定时器
let timer = null
// 返回一个闭包函数,用闭包保存timer确保其不会销毁,
重复点击会清理上一次的定时器
let arg = arguments
return function () {
// 调用一次就清除上一次的定时器
clearTimeout(timer)
// 开启这一次的定时器
timer = setTimeout(() => {
// 若不改变this指向,则会指向fn定义环境
fn.apply(this, arg)
}, delay)
}
}

#yyds干货盘点# 【js学习笔记三十四】手写防抖_前端_03

总结


简单的说,当一个函数连续触发,只执行最后一次。