个人学习笔记,欢迎大佬们纠错
function debounce(fun, delay) {
let timer = null
return (...rest) => {
clearTimeout(timer)
timer = setTimeout(() => {
fun.apply(this, rest)}, delay)
}
function test(a, b) {
console.log(a, b)
}
let fun = debounce(test, 1000)
fun(1, 2)
function throttle(fun, delay) {
let start = 0
return (...rest) => {
let end = + new Date()
if (end - start >= delay) {
fun.apply(this, rest)
start = end
}
}
}
function throttle(fun, delay) {
let isActived = false;
return (...rest) => {
if (!isActived) {
fun.apply(this, rest)
isActived = true
setTimeout(()=> isActived = false, delay)
}
}
}
function test(a, b) {
console.log(a, b)
}
let fun = throttle(test, 2000)
fun(1, 2)