手写防抖

36 阅读1分钟

 

目录

前言

导语

代码部分

总结


前言

我是歌谣 歌谣的意志是永恒的 放弃很容易 但是坚持一定很酷

导语

手写防抖

​编辑

代码部分

	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)
				}
			}

总结

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