1

我将使用一个debounce函数作为示例。

const debounce = (func, wait) => {
  let timeout;

  return function executedFunction(...args) {
    const later = () => {
      clearTimeout(timeout);
      func(...args);
    };

    clearTimeout(timeout);
    timeout = setTimeout(later, wait);
  };
};

然后我创建一个虚拟函数:

const dummy = () => console.log('debounced');

然后我创建了一个 debouncedDummy 函数:

const debouncedDummy = debounce(dummy, 1000);

然后我debouncedDummy多次调用:

debouncedDummy();
debouncedDummy();
debouncedDummy();
debouncedDummy();

我需要帮助理解的是为什么timeout变量在多个调用之间共享debouncedDummy
如果timeout被定义在范围之外debounce怎么办?
如果timeout在范围内定义了executedFunction怎么办?

4

0 回答 0