var timers = { //#1
timerID: 0, //#2
timers: [], //#2
add: function(fn) { //#3
this.timers.push(fn);
},
start: function runNext() { //#4
if (this.timerID) return;
(function() {
if (timers.timers.length > 0) {
for (var i = 0; i < timers.timers.length; i++) {
if (timers.timers[i]() === false) {
timers.timers.splice(i,1);
i--;
}
}
timers.timerID = setTimeout(runNext, 0);
}
})();
},
上記のコードは、John Resig によるSecrets of the JavaScript Ninjaからのものです。私が理解していない部分は、彼が関数をプロパティに割り当ててから、start
その関数に名前を付ける場所ですrunNext
。誰か説明をお願いできますか?