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

2019-05-14 14:52:12 +08:00
 TomVista
/**
 * 返回一个函数,这个函数执行(等于执行 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 怎么写
1028 次点击
所在节点    问与答
3 条回复
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
2019-05-14 16:22:33 +08:00
@pierswu 明白了,谢谢. 头像萌翻了.
pierswu
2019-05-14 16:23:34 +08:00
@TomVista 👍

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/564021

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX