闭包在实际项目中有哪些应用?

主要可以实现什么样的功能,举例一下吧

已解决 悬赏分:40 - 解决时间 2021-12-02 22:19
反对 0举报 0 收藏 0

回答2

最佳
  • @
    • 防抖
    • 节流
    • 高阶函数
    • 配合立即执行函数解决es5的循环settimeout var问题
    支持 0 反对 0 举报
    2021-12-02 12:27
  • @

    实现 debounce

    function debounce(func, wait, immediate) {
      let timeout;
    
      return function executedFunction() {
        const context = this;
        const args = arguments;
            
        const later = function() {
          timeout = null;
          if (!immediate) func.apply(context, args);
        };
    
        const callNow = immediate && !timeout;
        
        clearTimeout(timeout);
    
        timeout = setTimeout(later, wait);
        
        if (callNow) func.apply(context, args);
      };
    };
    支持 0 反对 0 举报
    2021-12-02 12:48