before() | Underscore JS 日本語リファレンス

第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;
    };
  };

このページのトップへ戻る