js定时器

js定时器

js 定时器有以下两个方法:

  • setInterval() :按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。
  • setTimeout() :在指定的毫秒数后调用函数或计算表达式。

setInterval()

语法

setInterval(code,millisec,lang)

参数 描述
code 必需。要调用的函数或要执行的代码串。
millisec 必须。周期性执行或调用 code 之间的时间间隔,以毫秒计。
lang 可选。 JScript | VBScript | JavaScript

以下实例在每 1000 毫秒执行 clock() 函数。实例中也包含了停止执行的按钮:

setTimeout()

语法

setTimeout(code,millisec,lang)

参数 描述
code 必需。要调用的函数后要执行的 JavaScript 代码串。
millisec 必需。在执行代码前需等待的毫秒数。
lang 可选。脚本语言可以是:JScript | VBScript | JavaScript

实例演示如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>

        <p>点击按钮,在等待 3 秒后弹出 "Hello"。</p>
        <button onclick="myFunction()">点我</button>

        <script>
            function myFunction()
            {
                setTimeout(function(){alert("Hello")},3000);
            }
        </script>

    </body>
</html>

疑问

在setTimeout中无法使用this修改参数的原因

在setTimeout使用this打印,可以看到返回是Windows对象。
如果要在Vue使用setTimeout并且需要调用Vue本身的对象,可以通过var that = this实现