JavaScript 求大神解释下这段防抖函数代码,最好详细越好
3个回答
展开全部
这个不难,先跟你说一下78行,那是调用回调函数method,并用apply把method中的this指向window,同时把debonce的参数作为method的参数传进去,但因为method里面没this,本身也没参数,所以跟直接调用效果差不多,但传了参数就有用。
而代码本身是当屏幕滚动时触发debounce中return的那个函数(不是debonuce,无论屏幕滚不滚debounce都会执行),self和args可以无视,后面是判断延时timer存不存在,存在就删除,删完创建一个新的,延时0.2s。执行的效果就会是当屏幕滚一下时会console出滚动条高度,但是在0.2s中连续滚动时同样只会触发一次,因为会不断调用return的函数,把前一个延时删除。
而代码本身是当屏幕滚动时触发debounce中return的那个函数(不是debonuce,无论屏幕滚不滚debounce都会执行),self和args可以无视,后面是判断延时timer存不存在,存在就删除,删完创建一个新的,延时0.2s。执行的效果就会是当屏幕滚一下时会console出滚动条高度,但是在0.2s中连续滚动时同样只会触发一次,因为会不断调用return的函数,把前一个延时删除。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询