关于防抖的问题
这里这个argments是fn的argments吗,怎么传过来的?
// 防抖动函数
function debounce(fn,wait=50,immediate) {
let timer;
return function() {
if(immediate) {
fn.apply(this,arguments)
}
if(timer) clearTimeout(timer)
timer = setTimeout(()=> {
fn.apply(this,arguments)
},wait)
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这个防抖函数不是return function(){....}有这一步吗?这就是返回一个函数,就是通过调用这个函数进行事件其他操作的.
是,也不是。其实是里面那个匿名函数的,然后再原样传给
fn
。debounce防抖函数调用后返回一个新函数,这个arguments就是传给这个匿名函数的参数列表,里面那个箭头函数里的arguments和上面的argumenst都是同一个函数的参数,因为箭头函数是没有arguments对象的。至于怎么传过来,你可以调用debounce后再调用一次自己传入,或者替换某个方法的回调函数,接收回调的默认参数。