重置_.after计数器

卢卡斯·塞弗林(LucasSeveryn)

我在互联网上看了一下,但是在执行内部代码之后,无法找到重置_.after计数器的方法。在此示例中,我预期的功能意味着按钮上每单击5次,便会显示一个警报框:

var cb;

cb = _.after(4, function() {
    alert(':)');
});

$('button').on('click', cb);

http://jsfiddle.net/danharper/JkcuD/

丹达维斯

您无法重置,甚至看不到该计数器,因为该计数器是私有的:

来自:http : //underscorejs.org/docs/underscore.html#section-87

 _.after = function(times, func) {
    return function() {
      if (--times < 1) {
        return func.apply(this, arguments);
      }
    };
  };

也就是说,您可以看到那里没有太多代码,因此将其调整为每运行一次就很容易了:

 _.onceEvery= function(times, func) {
    var orig = times;
    return function() {
      if (--times < 1) {
        times=orig;
        return func.apply(this, arguments);
      }
    };
  };

示例:http//jsfiddle.net/JkcuD/78/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章