js setTimeout()

  执行一段代码:
   var i=0;
   setTimeout("i+=1;alert(i)",1000);
   执行一个函数:
   var i=0;
   setTimeout(function(){i+=1;alert(i);},1000);

 

  setTimeout有两种形式

  setTimeout(code,interval)
  setTimeout(func,interval,args)

  其中code是一个字符串

  setTimeout("a()",1000)
  或
  setTimeout(a,1000)

  

在类中使用setTimeout
    终于到正题了,其实在类中使用大家遇到的问题都是关于this的,只要解决了这个this的问题就万事无忧了。
呵呵。让我们来分析一下:
    
    function xilou(){

        this.name="xilou";
        this.sex="男";
        this.num=0;
    }
    xilou.prototype.count=function(){
        this.num+=1;
        alert(this.num);
        if(this.num>10){return;}
        //下面用四种方法测试,一个一个轮流测试。
        setTimeout("this.count()",1000);//A:当下面的x.count()调用时会发生错误:对象不支持此属性或方法。this其实指是window对象,并不是指当前实例对象
        setTimeout("count()",1000);//B:错误显示:缺少对象
        setTimeout(count,1000);//C:错误显示:'count'未定义
        //下面是第四种 
        var self=this;
        setTimeout(function(){self.count();},1000);//D:正确,将变量self指向当前实例对象,这样js解析引擎就不会混肴this指的是谁了
        
    }
    
    var x=new xilou();
    x.count();

 

转载地址在(http://www.cnblogs.com/zhangzheny/archive/2007/12/03/981200.html)

posted @ 2015-04-19 10:29  tangwaikei  阅读(69)  评论(0编辑  收藏  举报