前提知识: 闭包
写一个utils:
/*
* 自己写一个防抖函数吧 (注意维护同一个timer)
* */
export function debounce (fn, delay) {
let timer = null
return function () {
const args = arguments
const that = this
const triggleNow = !timer
if (triggleNow) {
fn.apply(that, args)
} else {
clearTimeout(timer)
}
timer = setTimeout(function () {
timer = false
}, delay)
}
}
/*
* 自己写一个节流函数吧
* */
export function throttle1 (fn, delay) {
let clickNow = true
return function () {
if (clickNow) {
clickNow = false
fn.apply(this, arguments)
setTimeout(function () {
clickNow = true
}, delay)
}
}
}
使用:
clickFn: throttle(function () {
console.log('节流测试')
}, 1000),