为了账号安全,请及时绑定邮箱和手机立即绑定

关于的debounce原理

关于的debounce原理

有只小跳蛙 2018-08-10 17:21:31
function debounce(fn, delay) {var timerreturn function () {var context = thisvar args = arguments clearTimeout(timer)timer = setTimeout(function () {   fn.apply(context, args) }, delay)}}代码如上 不明白这里为什么一定要 return function 加一层是干什么用的求解
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

1.debounce是一个高阶函数,接受一个函数作为参数,返回一个经过防抖包装的函数。所以返回的一定是一个函数。

2.至于为什么不直接返回原函数,是因为这个防抖处理需要在原函数执行前进行抖动判断,而原函数的内容时无法修改的,因此需要返回一个自己定义的函数以执行判断逻辑


查看完整回答
反对 回复 2018-08-12
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

var s=debounce(fn,args);
.......
s()

生成函数后在适当的时候调用


查看完整回答
反对 回复 2018-08-12
  • 2 回答
  • 0 关注
  • 940 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信