猿问

关于的debounce原理

function debounce(fn, delay) {

var timer

return function () {

var context = thisvar args = arguments


clearTimeout(timer)timer = setTimeout(function () {
  fn.apply(context, args)
}, delay)

}
}

代码如上 不明白这里为什么一定要 return function 加一层是干什么用的

求解


有只小跳蛙
浏览 941回答 2
2回答

呼唤远方

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

陪伴而非守候

var s=debounce(fn,args);.......s()生成函数后在适当的时候调用
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答