`

setTimeout()的用法

阅读更多
setTimeout 在执行时,它从载入后,每隔指定的时间就执行一次表达式1,基本用法:   执行一段代码:   var i=0;   setTimeout("i+=1;alert(i)",1000);   执行一个函数:   var i=0;   setTimeout(function(){i+=1;alert(i);},1000); 

   正文:setTimeout()在js类中的使用方法 
setTimeout (表达式,延时时间)
setTimeout(表达式,交互时间)
延时时间/交互时间是以豪秒为单位的(1000ms=1s)
setTimeout  在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次
setTimeout 在执行时,它从载入后,每隔指定的时间就执行一次表达式
1,基本用法:
   执行一段代码:
   var i=0;
   setTimeout("i+=1;alert(i)",1000);
   执行一个函数:
   var i=0;
   setTimeout(function(){i+=1;alert(i);},1000);
  
   //注意比较上面的两种方法的不同。
   下面再来一个执行函数的:
   var i=0;
   function test(){
       i+=1;
       alert(i);
   }
   setTimeout("test()",1000);
   也可以这样:
   setTimeout(test,1000);
   总结:
   setTimeout的原型是这样的:
   iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])
  
  setTimeout有两种形式
  setTimeout(code,interval)
  setTimeout(func,interval,args)
  其中code是一个字符串
  func是一个函数.
  注意"函数"的意义,是一个表达式,而不是一个语句.
  比如你想周期性执行一个函数
  function a(){
      //...
  }
  可写为
  setTimeout("a()",1000)
  或
  setTimeout(a,1000)
  这里注意第二种形式中,是a,不要写成a(),切记!!!
  展开来说,不管你这里写的是什么,如果是一个变量,一定是一个指向某函数的变量;如果是个函数,那它的返回值就  要是个函数
  2,用setTimeout实现setInterval的功能
    思路很简单,就是在一个函数中调用不停执行自己,有点像递归
    var i=0;
    function xilou(){
        i+=1;
        if(i>10){alert(i);return;}
        setTimeout("xilou()",1000);
        //用这个也可以
        //setTimeout(xilou,1000);
    }
   
    3,在类中使用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()调用时会发生错误:对象不支持此属性或方法。
        setTimeout("count()",1000);//B:错误显示:缺少对象
        setTimeout(count,1000);//C:错误显示:'count'未定义
        //下面是第四种
        var self=this;
        setTimeout(function(){self.count();},1000);//D:正确
       
    }
   
    var x=new xilou();
    x.count();
   
    错误分析:
    A:中的this其实指是window对象,并不是指当前实例对象
    B:和C:中的count()和count其实指的是单独的一个名为count()的函数,但也可以是window.count(),因为window.count()可以省略为count()
    D:将变量self指向当前实例对象,这样js解析引擎就不会混肴this指的是谁了。
   
    话说回来,虽然我们知道setTimeout("this.count()",1000)中的this指的是window对象,但还是不明白为什么会是
    window对象^_^(有点头晕...)
    那我们可以想象一下这个setTimeout是怎样被定义的:
    setTimeout是window的一个方法,全称是这样的:window.setTimeout()
    那应该是这样被定义的:
    window.setTimeout=function(vCode, iMilliSeconds [, sLanguage]){
        //.....代码
        return timer//返回一个标记符
    }
    所以当向setTimeout()传入this的时候,当然指的是它所属的当前对象window了。

演示地址:http://www.webdm.cn/webcode/d07f574e-5a6b-4fde-b450-ecb78c39f99e.html
分享到:
评论

相关推荐

    js中SetInterval与setTimeout用法

    JS 中 SetInterval 与 setTimeout 用法 在 JavaScript 中,SetInterval 和 setTimeout 是两种常用的定时器函数,用于实现延迟执行或重复执行某些操作。下面我们将详细讲解这两种函数的区别和用法。 SetTimeout ...

    js中SetInterval与setTimeout用法.pdf

    JavaScript 中的 SetInterval 与 setTimeout 用法 在 JavaScript 中,SetInterval 和 setTimeout 是两种常用的定时器函数,用于实现延迟执行或重复执行某些操作。本文将详细介绍这两种函数的用法和区别。 ...

    jQuery setTimeout()函数使用方法

    setTimeout()从载入后延迟指定的时间去执行一个表达式或者是函数;仅执行一次 ;和window.clearTimeout一起使用.我在 代码如下:$(document).ready(function(){setTimout(test(),200); function test() { alert(1&#...

    JavaScript中SetInterval与setTimeout的用法详解

    setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。 注:调用过程中,可以使用clearTimeout(id_of_settimeout)终止 参数 描述 code 必需,要调用的函数后要执行的 JavaScript 代码串。 ...

    JavaScript调用堆栈及setTimeout使用方法深入剖析

    Javascript中会经常用到setTimeout来推迟一个函数的执行并且会在执行到这句话后延迟1秒钟来弹出alert窗口,接下来将介绍一下JavaScript调用堆栈和setTimeout用法,感兴趣的你可不要错过了哈

    JavaScript SetInterval与setTimeout使用方法详解

    setTimeout和setInterval的语法相同。它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码。不过这两个函数还是有区别的,setInterval在执行完...

    jQuery中setTimeout的几种使用方法小结

    在JavaScript的世界里,jQuery是一个非常流行的库,它简化了DOM操作和事件处理。然而,当涉及到像`setTimeout`这样的定时器函数时,...在实际开发中,通常推荐使用方法3或4,因为它们提供了更好的灵活性和代码组织。

    解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题

    如果使用普通函数(function() {}),需要注意其this上下文可能并不会指向Vue实例,而是指向全局的window对象,从而导致函数中使用的Vue实例的属性或方法无法正确访问。 第三个知识点是ES6箭头函数。箭头函数不会...

    Javascript中setTimeOut和setInterval的定时器用法

    Javascript的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等。...setTimeOut用法

    使用setTimeout()方法模拟进度条

    使用setTimeout()方法模拟进度条

    JS中setTimeout()的用法详解

    ### JS中setTimeout()的用法详解 #### setTimeout()概述 `setTimeout()` 是JavaScript中用于设置一...理解和掌握`setTimeout()` 与`clearTimeout()` 的正确使用方法,对于开发中实现复杂逻辑和优化用户体验至关重要。

    Javascript中, setTimeout() 和 setInterval() 的方法

    例如,对于`setTimeout()`,可以使用`clearTimeout()`,而对于`setInterval()`,则使用`clearInterval()`。 在实际开发中,`setTimeout()`常用于实现一次性延迟执行,如加载动画的结束;而`setInterval()`则适用于...

    javascript之setTimeOut和setInterval的用法

    使用SetInterval和设定延时函数setTimeout 很类似。setTimeout 运用在延迟一段时间,再进行某项操作。

    java后台定时器最简单用法实例,类似于js里的setTimeOut

    java后台定时器最简单用法实例,类似于js里的setTimeOut

    JavaScript_window.setTimeout()_的详细用法

    `window.setTimeout()`方法的基本语法如下: ```javascript window.setTimeout(callback, delay, ...args); ``` 其中: - `callback`: 要在指定时间后调用的函数或要执行的一段代码(字符串形式)。 - `delay`: 表示...

    模态对话框导致setTimeout失效的解决方案(一)

    在IT行业中,我们经常遇到各种各样的问题,其中之一就是在使用模态对话框时,发现`setTimeout`函数似乎不再按照预期工作。这个问题主要出现在JavaScript编程环境中,尤其是在与UI交互时。模态对话框,如Bootstrap的...

    向setTimeout传递函数参数

    在这个例子中,我们使用箭头函数确保`sayHello`方法的`this`指向`obj`对象,然后传递参数`'Jane'`。两秒后,控制台将输出`Hello, John, Jane`。 值得注意的是,`setTimeout`返回一个唯一的ID,可以通过`...

    关于JS定时器(setTimeout setInterval)定时不准问题1

    setTimeout和setInterval的基本用法 setTimeout函数用于在指定的延迟时间后执行一个函数,返回一个惟一的ID,可以通过该ID取消定时器。setInterval函数用于在指定的延迟时间后循环执行一个函数,直到它被取消。 ...

Global site tag (gtag.js) - Google Analytics