函数的功能实现了,但是不太理解其中原理
这是网上找的案例,基本上大同小异,有几点疑问
1、定时器中为什么要使用fn.call(this,args),使用this的意义是什么
2、args是什么,从哪来的
2、return的函数 f 与 fn 的关系,为什么需要把 f 的参数args传给fn
function useDebounce(fn, delay, dep = []) {
const { current } = useRef({ fn, timer: null });
useEffect(function () {
current.fn = fn;
}, [fn]);
return useCallback(function f(args) {
if (current.timer) {
clearTimeout(current.timer);
}
current.timer = setTimeout(() => {
current.fn.call(this, args);
}, delay);
}, dep)
}