setIntervalを任意の回数実行するクラスを作ってみた
これは何?
setIntervalを任意の回数実行するjavascriptのクラスです
前回(クロージャがやっとこさ理解できたのでまとめ)の記事を書く際、prototypeと、クロージャをまとめて理解する為に、コーディングしてみたものですが、備忘の為にblogに上げときます
ライセンスは、NYSLでご自由にどうぞ
// コンストラクタ function IntervalCounter(obj){ this.intervalCnt = obj.intervalCnt; // 回数 this.func = obj.func; // 実行するメソッド // 引数にintervalした回数が渡される // 他に渡したければ、クロージャを使って下さい this.intervalTime = obj.intervalTime; // 待機する時間(ms) } // Interval開始 IntervalCounter.prototype.start = function(){ this.intervalId = setInterval( (function(obj){ var cnt = 0; return function(e){ obj.func(cnt); if( ++cnt >= obj.intervalCnt ){ clearInterval(obj.intervalId); } }; })(this), this.intervalTime ); } // Interval中断 IntervalCounter.prototype.stop = function(){ clearInterval(this.intervalId); } // 使い方 // 1000ms毎に3回、0,1,2と、alertを表示 var wIntervalCounter = new IntervalCounter({ intervalCnt : 3, func : function(cnt){ alert(cnt); } intervalTime : 1000 }) // 開始 wIntervalCounter.start(); // 中断 wIntervalCounter.stop();