像你所說(shuō)的,如果將let previous = 0 聲明放到return function {...} 的函數(shù)體內(nèi)部(姑且稱這個(gè)函數(shù)為func)吓著,那么每次觸發(fā)func都會(huì)執(zhí)行l(wèi)et previous = 0; 這樣 if (now - previous > wait) 這個(gè)條件永遠(yuǎn)都是true乳愉, 無(wú)法達(dá)到節(jié)流的效果。而將let previous = 0放到func外 ;只會(huì)在第一次調(diào)用throttle時(shí)聲明previous=0千元,然后每次調(diào)用func內(nèi)部去改變這個(gè)previous
函數(shù)防抖和節(jié)流在前端開(kāi)發(fā)的過(guò)程中苫昌,我們經(jīng)常會(huì)需要綁定一些持續(xù)觸發(fā)的事件,如 resize幸海、scroll祟身、mousemove 等等,但有些時(shí)候我們并不希望在事件持續(xù)觸發(fā)的過(guò)程中那么頻繁地去執(zhí)...