setTimeout + arguments.callee

setTimeout + arguments.callee

setTimeout + arguments.callee

» » Сообщение:

Код: Выделить всё Развернуть
<div id="id1"></div>
<script type="text/javascript">
function start(i){
 if(!arguments.callee.i) arguments.callee.i = 0
 if(arguments.callee.i > 10) return
 arguments.callee.i++
 // Здесь твой код
 alert(arguments.caller);
 document.getElementById('id1').innerHTML=((document.getElementById('id1').innerHTML*1)+1);
 setTimeout(arguments.callee,1000)
};
start(1);
</script>
Код: Выделить всё Развернуть
<div id="id1"></div>
<script type="text/javascript">
var setTim={
start:function(){
   var w=window,d=document;
   if(!w.tm){w.tm=0;};
   if(w.tm<10){
      d.getElementById('id1').innerHTML=w.tm;
      w.tm++;
   //alert(w.tm);
      setTimeout(arguments.callee,2000);
   }else{
      alert('Закончили');
   };
}
};
setTim.start();
</script>

По теме:
Доступно только для зарегистрированных пользователей.

settimeout, arguments.callee

Re: setTimeout + arguments.callee

Admin » » Сообщение:

Туда же:

Именованная функция с калбеком:

Код: Выделить всё Развернуть
function start(){
   var i = 10;
   setTimeout(function(){
      arguments.callee.i=arguments.callee.i|0,j=arguments.callee.i++;
      if(i<j)return;
      //
      console.log(j);
      //
      setTimeout(arguments.callee,300);   
   },1000);
};
start();

Анонимная, соответственно:

Код: Выделить всё Развернуть
(function(){
   var i = 10;
   setTimeout(function(){
      arguments.callee.i=arguments.callee.i|0,j=arguments.callee.i++;
      if(i<j)return;
      //
      console.log(j);
      //
      setTimeout(arguments.callee,300);   
   },1000);
})();

Плюс данного метода то, что не выносим переменные из локальной области видимости..