像你所說的,如果將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拍棕, 無法達(dá)到節(jié)流的效果蠢棱。而將let previous = 0放到func外 ;只會(huì)在第一次調(diào)用throttle時(shí)聲明previous=0死遭,然后每次調(diào)用func內(nèi)部去改變這個(gè)previous
函數(shù)防抖和節(jié)流在前端開發(fā)的過程中裙盾,我們經(jīng)常會(huì)需要綁定一些持續(xù)觸發(fā)的事件绞愚,如 resize朱巨、scroll史翘、mousemove 等等,但有些時(shí)候我們并不希望在事件持續(xù)觸發(fā)的過程中那么頻繁地去執(zhí)...