闭包应用-函数防抖

// global.js
//let s;
function a() {
    // 循环
    let c = null;
    // 触发状态 是否允许触发
    let d = false;
    // 状态修改 s函数在window下
    s = function() {
        d = !d;
    }
    // 执行方法
    function b(f, t = 1000){
        // 是否允许触发
        if(!d) {
            // 修改触发状态为不允许
            s();
            c = setTimeout(function(){
                // 执行内容
                f();
                // 停止循环
                clearTimeout(c)
                // 清除循环
                c = null;
                // 修改触发状态为允许
                s();
            }, t)
        };
    }
    return b;
}


export default {
  a: a(),
}

..........

// 使用

import { a } from 'global.js'
a(() => {...}, 1000)

借鉴自阮一峰闭包资料:http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html

原文地址:https://www.cnblogs.com/ppyang/p/15541093.html