我在互联网上看了一下,但是在执行内部代码之后,无法找到重置_.after计数器的方法。在此示例中,我预期的功能意味着按钮上每单击5次,便会显示一个警报框:
var cb;
cb = _.after(4, function() {
alert(':)');
});
$('button').on('click', cb);
您无法重置,甚至看不到该计数器,因为该计数器是私有的:
来自: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);
}
};
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句