定义全局变量,不用传
定义变量的时候不要用var就可以了

解决方案 »

  1.   

    o = new object; // 定义全局变量
    function w(i)
    {
       if(i==10)
       {
       o.timeSpan=2000;
       alert(o.timeSpan);
       return;}
       else
       setTimeout("w("+o+","+(i+1)+")",1000);
    }
      

  2.   

    http://blog.csdn.net/fason/archive/2004/07/30/56393.aspx
      

  3.   

    <script language="javascript">
    var _st = window.setTimeout;
    window.setTimeout = function(fRef, mDelay) {
     if(typeof fRef == 'function'){
      var argu = Array.prototype.slice.call(arguments,2);
      var f = (function(){ fRef.apply(null, argu); });
      return _st(f, mDelay);
     }
     return _st(fRef,mDelay);
    }function w(o,i)
    {
       if(i==10)
       {
       //o.timeSpan=2000;
       alert(o.timeSpan);
       return;}
       else
       setTimeout(w,100,o,i+1);
    }var a = {timeSpan:1};
    var b = {timeSpan:2};
    setTimeout( w, 1000, a, 1 );
    setTimeout( w, 3000, b, 2 );
    </script>