最近再學(xué)習(xí)作圖片懶加載,其中要做滾動(dòng)函數(shù)節(jié)流,看到這樣一段代碼// 簡(jiǎn)單的節(jié)流函數(shù)//fun 要執(zhí)行的函數(shù)//delay 延遲//time 在time時(shí)間內(nèi)必須執(zhí)行一次function throttle(fun, delay, time) { var timeout, startTime = new Date(); return function() { var context = this, args = arguments, curTime = new Date(); clearTimeout(timeout); // 如果達(dá)到了規(guī)定的觸發(fā)時(shí)間間隔,觸發(fā) handler if (curTime - startTime >= time) { fun.apply(context, args); startTime = curTime; // 沒(méi)達(dá)到觸發(fā)間隔,重新設(shè)定定時(shí)器 } else { timeout = setTimeout(fun, delay); } };};// 實(shí)際想綁定在 scroll 事件上的 handlerfunction lazyload(event) {}// 采用了節(jié)流函數(shù)window.addEventListener('scroll',throttle(lazyload,500,1000));別的都能看懂,但是里面var content=this那里沒(méi)看懂,這里的this不是window嗎?后面fun.apply(content,args);豈不是把fun的this綁定為window;這樣有什么目的? 前端小白,求指導(dǎo)
關(guān)于節(jié)流函數(shù)
拉風(fēng)的咖菲貓
2018-12-28 23:14:02