【问题标题】:Can someone explain me the flow of functions in this example?有人可以解释一下这个例子中的功能流程吗?
【发布时间】:2020-08-01 11:11:16
【问题描述】:
我查看了上面的代码,并尽力寻找解决方案并在全力以赴后将其发布在这里。这是我目前对代码的理解:
当有输入时调用 debounce() 并且 onInput() 作为回调传递给它,并且 debounce 函数返回另一个函数,返回的函数带有一个参数,该参数是 debounce() 又名 onInput( ) ,我被卡住了@ func.apply(null , args);
1.func和args不是一回事吗???
有人请逐步解释是可能的..
【问题讨论】:
标签:
javascript
callback
arguments
parameter-passing
higher-order-functions
【解决方案1】:
debouce 在初始运行时只被调用一次,它创建并返回一个新的匿名函数——实际的事件处理程序。
当触发输入事件时,执行之前创建的函数,并在500ms后调用func(onInput)。 func 只传递给 debounce 一次,但 args 是实际的输入事件参数,将通过 apply 传递给 func。在这种情况下,apply 与func(...args); 基本相同,因此func(又名 onInput)将在 500 毫秒后使用来自input event 的实际参数调用。
【解决方案2】:
这是一个去抖动的例子。
- 去抖动是一种用于提高浏览器性能的做法。
- 一种编程实践,可确保不会频繁触发耗时的任务。
- 用于限制调用函数的速率。
我已经用示例解释了去抖动,请查看链接
debounce