// 非立即执行
function debounce(func, wait) {
let timeout;
return function () {
let context = this;
let args = [].slice.call(arguments);
if (timeout) {
clearTimeout(timeout)
}
timeout = setTimeout(()=>{
func.apply(context,args);
},wait)
}
}
// 立即执行
function debounce_1(func,wait){
let timeout
return {
function(){
let args = [].slice.call(arguments);
if(timeout) clearTimeout(timeout);
let callNow = !timeout;
timeout = setTimeout(()=>{
timeout = null;
},wait)
if(callNow) fn.apply(this,args);
}
}
}