第1引数の「数 - 1」回まで第2引数の関数が実行されたら、それ以上第2引数の関数は発動しない。
■使用例
function logged( txt ){
var text = _.now();
console.log( "re now : " + txt + " : " + text );
}
var re = _.before(5, logged);
re("0");
re("1");
re("2");
re("3");
// re("4"),re("5")は発動しない。
re("4");
re("5");
■内部構造
_.before = function(times, func) {
var memo;
// _.before() 設定時に返される関数。
return function() {
// _.before() の第1引数で設定された数未満までは関数が実行され、それ以降は func = null; になる。
if (--times > 0) {
memo = func.apply(this, arguments);
}
if (times <= 1) func = null;
return memo;
};
};