function throttle(hander,time){
let first = false,
saveArg,
saveThis
function wrapper(arguments){
if(first){
saveThis = this
saveArg = arguments
return
}
first = true
hander.call(this,arguments)
setTimeout(()=>{
isThrottled = false
hander.call(saveThis,saveArg)
saveArg = saveThis = null
},time)
}
return wrapper
}
function f(a) {
console.log(a);
}
let f1000 = throttle(f, 1000);
f1000(1); // 显示 1
setTimeout(()=>{
f1000(2)
},1000)
// (节流,尚未到 1000ms)
f1000(3); // (节流,尚未到 1000ms)
setTimeout(()=>{
f1000(4)
},6000)