function TestObject(){
   this.a ='a';
   this.initlist = function(list){
      doLater(function(){
          //我在这里想引用this.a,大家有没有什么办法
      }, 1000, null);
   }
}//延时运行
function doLater(callback, timeout, param){
    var args = Array.prototype.slice.call(arguments, 2);
    var _cb = function(){
        callback.apply(null, args);
    }
    setTimeout(_cb, timeout);
}

解决方案 »

  1.   

    应该可以直接用吧
    function   TestObject(){
          this.a   ='a';
          this.initlist   =   function(list){
                doLater(function(this.a){
                        //我在这里想引用this.a,大家有没有什么办法
                },   1000,   null);
          }
      

  2.   

    <script language="javascript">
    function   TestObject(){
          this.a   ='a';
          this.initlist   =   function(list){
      o=this.a;
                doLater(function(aa){alert(o)},   1000,   "cc");
          }
    }//延时运行
    function   doLater(callback,   timeout,   param){
            var   args   =   Array.prototype.slice.call(arguments,   2);
            var   _cb   =   function(){
                    callback.apply(null,   args);
            }
            setTimeout(_cb,   timeout);
    }
    var ss=new TestObject();
    ss.initlist("list")
    </script>
      

  3.   

    <script language="javascript">
    function   TestObject(){
          this.a   ='a';
          this.initlist   =   function(list){
      o=this.a;
                doLater(function(aa){alert(o)},   1000,   "cc");
          }
    }//延时运行
    function   doLater(callback,   timeout,   param){
            var   args   =   Array.prototype.slice.call(arguments,   2);
            var   _cb   =   function(){
                    callback.apply(null,   args);
            }
            setTimeout(_cb,   timeout);
    }
    var ss=new TestObject();
    ss.initlist("list")
    </script>
      

  4.   

    其实意思就是你只要先定义一下o=this.a;
    然后用o来解决
      

  5.   

    你也可以通过传递参数形式解决,如:
    <script>
    function   TestObject(){ 
          this.a   ='a'; 
          this.initlist   =   function(list,a){ 
                doLater(function(){alert(a)},   1000,   null); 
          } 
    } //延时运行 
    function   doLater(callback,   timeout,   param){ 
            var   args   =   Array.prototype.slice.call(arguments,   2); 
            var   _cb   =   function(){ 
                    callback.apply(null,   args); 
            } 
            setTimeout(_cb,   timeout); 
    }
    var ao = new TestObject();
    ao.initlist([1,2],ao.a);
    </script>
      

  6.   

    function   TestObject(){ 
          this.a   ='a'; 
          //.....
          var _this = this;
          this.initlist   =   function(list){ 
                doLater(function(){ 
    alert(_this.a);
                        //我在这里想引用this.a,大家有没有什么办法 
                },   1000,   null); 
          } 
    } //延时运行 
    function   doLater(callback,   timeout,   param){ 
            var   args   =   Array.prototype.slice.call(arguments,   2); 
            var   _cb   =   function(){ 
                    callback.apply(null,   args); 
            } 
            setTimeout(_cb,   timeout); 
    }