//防抖
function debounce(fn,time,immediate){
let timer = null
return function(){
let args = arguments
let context = this
if(immediate && !timer){
fn.apply(context, args)
}
if(timer)clearTimeout(timer)
timer = setTimeout(()=>{
fn.apply(context, args)
},time)
}
}
//节流
function throttle(fn,time,immediate){
let timer = null
return function(){
let args = arguments
let context = this
if(immediate){
fn.apply(context, args)
}
//当前没有要执行的事件时,才设置新的延时事件
if(!timer){
timer = setTimeout(()=>{
fn.apply(context, args)
//timer=null代表这个时间执行完了 可以设置下一个事件
timer = null
},time)
}
}
}
console