V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
TomVista
V2EX  ›  问与答

js 函数闭包和柯里化后怎么传参给 return 的函数;

  •  
  •   TomVista · 2019-05-14 14:52:12 +08:00 · 1044 次点击
    这是一个创建于 2046 天前的主题,其中的信息可能已经有所发展或是发生改变。
    /**
     * 返回一个函数,这个函数执行(等于执行 f)后的 time 毫秒时间内,再次被调用不会执行 f
     * @param {()=>any} f 
     * @param {number} time 
     * @returns {()=>any}
     */
    function pulseFunction(f, time) {
      var able = true;
      return function () {
        if (able) {
          able = false;
          f();
          setTimeout(() => {
            able = true;
          }, time);
        }
      };
    }
    
    var submit = pulseFunction(_submit,500);
    submit(...args); //多个 arg 怎么传给_submit; 还是传个对象. 另外这里的 jsdoc 怎么写
    
    3 条回复    2019-05-14 16:23:34 +08:00
    pierswu
        1
    pierswu  
       2019-05-14 16:14:21 +08:00
    function pulseFunction(f, time) {
    var able = true;
    return function () {
    if (able) {
    able = false;
    f.apply(this, arguments)
    setTimeout(() => {
    able = true;
    }, time);
    }
    };
    }
    TomVista
        2
    TomVista  
    OP
       2019-05-14 16:22:33 +08:00
    @pierswu 明白了,谢谢. 头像萌翻了.
    pierswu
        3
    pierswu  
       2019-05-14 16:23:34 +08:00
    @TomVista 👍
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3052 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 13:59 · PVG 21:59 · LAX 05:59 · JFK 08:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.