高頻面試題之手寫防抖函數(shù)
手寫防抖函數(shù)
函數(shù)防抖是指在事件被觸發(fā) n 秒后再執(zhí)行回調,如果在這 n 秒內事件又被觸發(fā),則重新計時。這可以使用在一些點擊請求的事件上,避免因為用戶的多次點擊向后端發(fā)送多次請求。
防抖就如坐電梯,當?shù)谝粋€人進入電梯,如果5秒內有人繼續(xù)進入,門就會再次等待5秒,以此下去,如果超過5秒,他就關門了,就上去啦。
//?函數(shù)防抖的實現(xiàn)
function?debounce(fn,?wait)?{
??let?timer?=?null;
??return?function()?{
????let?context?=?this,args?=?arguments;
????//?如果此時存在定時器的話,則取消之前的定時器重新記時
????if?(timer)?{
??????clearTimeout(timer);
??????timer?=?null;
????}
????//?設置定時器,使事件間隔指定事件后執(zhí)行
????timer?=?setTimeout(()?=>?{
??????fn.apply(context,?args);
????},?wait);
??};
}
評論
圖片
表情
