timeout再多次执行log()的时候是保存在哪里呢

来源:3-4 学习自定义Hook - 用useDebounce减少工程搜索请求频率

慕圣3009968

2022-01-15

timeout再多次执行log()的时候是保存在哪里呢(闭包返回函数中带有的参数是上一次函数中的参数?这个引用和对象真实都分别保存在哪里呢,有这方面的闭包详细说明文档吗)

写回答

1回答

weixin_慕勒5362282

2022-01-24

我的理解是,log记录的是useDebounce返回的闭包,因为只调用了一次useDebounce,所以后续的log里都是一个timeout,第一次调用给timeout设置了一个setTimeout,之后继续调用log(),因为timeout不为undefined了,所以会触发clearTImeout。

推荐google看看英文文档或者教程,比如mdn、javascript.info、you don't know js等,搜索closure即可。

0
0

React17+Hook+TS4 优质实践,仿 Jira 企业级项目

解锁 React17 高阶用法,轻松应对大型复杂长周期项目

2691 学习 · 1236 问题

查看课程