Не ответ, а полный код с таким же поведением:
(function () {
var counter = 0;
function testCounter() {
if (counter === 2) {
clearInterval (timer);
timer = setInterval (myWork, 1000);
}
else if (counter === 5)
clearInterval (timer);
}
function myWork () {
document.body.innerHTML += ++counter + ' ' + Date () +'<br/>';
}
document.body.innerHTML += 'Starting ' + Date () +'<br/>';
var timer = setInterval (myWork, 10000);
setInterval (testCounter, 500);
}) ();
Этот код отображает:
Starting Thu Sep 30 2010 16:15:09 GMT+0200 (CEST)
1 Thu Sep 30 2010 16:15:19 GMT+0200 (CEST)
2 Thu Sep 30 2010 16:15:29 GMT+0200 (CEST)
и не более, если я удаляю setInterval на testCounter и вызываю его внутри myWork, я получаю следующее:
Starting Thu Sep 30 2010 16:20:50 GMT+0200 (CEST)
1 Thu Sep 30 2010 16:21:00 GMT+0200 (CEST)
2 Thu Sep 30 2010 16:21:10 GMT+0200 (CEST)
3 Thu Sep 30 2010 16:21:11 GMT+0200 (CEST)
4 Thu Sep 30 2010 16:21:12 GMT+0200 (CEST)
5 Thu Sep 30 2010 16:21:13 GMT+0200 (CEST)
Очень любопытно .....