防抖函数封装
// 将防抖的函数封装为一个方法
function fangdou(callback, wait) {
// 定义一个定时器
var timer = null
return function () {
// 先将定时器清除
clearTimeout(timer)
// 再设置定时器
timer = setTimeout(function () {
callback()
}, wait)
}
}
节流函数封装
function jieliu(callback, wait) {
// 定义开始时间
var beginTime = Date.now()
// 定义定时器
var timer = null
return function () {
// 清除定时器
clearTimeout(timer)
// 当前执行时间
currentTime = Date.now()
// 判断间隔时间
if (currentTime - beginTime >= wait) {
callback()
// 记录本次执行的时间
beginTime = Date.now()
} else {
timer = setTimeout(function () {
callback()
}, wait)
}
}
}
调用示例:
jieliu(function () {
console.log('666');
}, 1000)