javascript中setInterval函数是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中setInterval函数是啥意思?相关的知识,希望对你有一定的参考价值。

是用来设置定时执行的,javascript中的setInterval用法如下:


    setInterval动作的作用是在播放动画的时,每隔一定时间就调用函数,方法或对象。可以使用本动作更新来自数据库的变量或更新时间显示。setInterval动作的语法格式如下:
    setInterval(function,interval[,arg1,arg2,......argn])
    setInterval(object,methodName,interval[,arg1,arg2,.....argn])
    第一种格式是标准动作面板中setInterval函数的默认语法,第二种格式是在专家模式动作中使用的方法。
    其中的参数function是一个函数名或者一个对匿名函数的引用。object参数指定从Object对象派生的对象。methodName制定 object参数中要调用的方法。
    interval制定对function或methodName调用两次之间的时间,单位是毫秒。后面的arg1等是可选的参数,用于制定传递给function或是methodName的参数。
    setInterval它设置的时间间隔小于动画帧速(如每秒10帧,相当于100毫秒),则按照尽可能接近interval的时间间隔调用函数。
    而且必须使用updateAfterEvent动作来确保以足够的频率刷新屏幕。如果interval大于动画帧速,则只用在每次播放头进入某一帧是才调用,以减小每次刷新屏幕的影响。
下面的例子每隔1秒调用一次匿名函数。
    setInterval(function()trace("每隔1秒钟我就会显示一次"),1000);//这里的function()是没有函数名的函数。成为匿名函数,后面的1000是时间间隔,单位是毫秒。
    下面的例子为我们展示如何带参数运行。

function show1()
    trace("每隔1秒显示一次");

function show2(str)
    trace(str);

setInterval(show1,1000);

    setInterval(show2,2000,"每隔2秒我就会显示一次");上面已经将函数的setInterval方法介绍了。
下面我们将介绍对象的setInterval方法。
首先,写一个setInterval在动作中调用对象的方法的例子,该例子不需要传递参数。
myobj=new Object();//创建一个新的对象
myobj.interval=function)
    trace("每隔1秒显示一次");
//创建对象的方法。
setInterval(myobj,"interval",1000);//设定时间间隔调用对象的方法。
接下来介绍如何传递参数。其实道理和函数的传递参数是一样的。
myobj=new Object();
myobj.interval-function(str)
    trace(str);

setInterval(myobj,"interval",2000," 每隔2秒我就会显示一次");
注意。要调用为对象定义的方法时,必须在专家模式中使用第二种语法格式。
这样子的话呢,我们来作一个动态显示时间的画面。可以用下面的代码实现。

setInterval(show,1000);
function show()
    time=new Date();
    hour=time.getHours();
       minu=time.getMinutes();
       sec=time.get.Seconds();
    datetime=hour+":"+minu+":"+sec;
//这里的datetime是一个动态文本框的变量名字。

这样子呢,setInterval这个方法大家应该学的很好了。现在呢,我们学习clearInterval.
clearInterval动作的作用是清楚对setInterval函数的调用,它的语法格式如下clearInterval(intervalid);intervalid是调用setInterval函数后返回的对象。
下面举一个简单的例子。

function show()
    trace("每隔一秒显示一次");

var sh;
sh=setInterval(show,1000);
clearInterval(sh);
参考技术A   javascript中的setInterval的函数主要是在制作动画或其他间隔性渲染(操作)效果时,对操作方法按照一定时间间隔进行调用的函数。

  用法:
  setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。
  setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

  setInterval的表达式格式主要有:
  setInterval(fnname,time,par1,par2,........parn);
  setInterval(obj,fnname,time,par1,par2,......parn);
  第一种是最常见的表达语法,其中fnname参数可以是一个匿名函数的引用或者是一个函数名,time是设定的调用faname的时间间隔,单位为毫秒,默认值为10毫秒,par1.......parn为可选参数,是传递给faname方法的参数。
  第二种是使用对象方法的语法,faname参数是obj对象的方法,其他参数同第一种语法。

setInterval 中的 Javascript 函数

【中文标题】setInterval 中的 Javascript 函数【英文标题】:Javascript function in setInterval 【发布时间】:2014-01-20 00:51:51 【问题描述】:

我有以下代码:

var foo=5;
var los= function ()
    alert(foo);;
setInterval(los, 1000);

正常工作。

如果我将其更改为:

var los= function ()
    alert(foo);;
setInterval(los(), 1000);

它只执行一次,在控制台中没有错误。 有人能解释一下为什么当我在 los 之后的 setInterval 函数中包含双亲时会发生这种情况吗?

【问题讨论】:

【参考方案1】:

因为您正在执行los(),然后该(单次)执行的结果被传递到setInterval 函数中。

setInterval 需要传入一个函数,而不是 undefined,这是 los 返回的。然而,它不会抱怨——它只是什么都不做。

【讨论】:

【参考方案2】:

请记住,在 JavaScript 中,函数是一个对象,可以像任何其他变量一样被传递。所以这是对函数的引用:

los

另一方面,执行函数并计算其结果:

los()

所以当你这样做时:

setInterval(los(), 1000)

您没有将间隔设置为函数,而是设置为函数的结果。因此,例如,如果函数返回 true,那么您实际上是在编写以下代码:

setInterval(true, 1000)

函数执行一次,然后间隔重复其结果。您想要的是在区间内使用函数引用本身:

setInterval(los, 1000)

这样setInterval 将在每个间隔执行函数,而不是执行其结果(不执行任何操作)。

【讨论】:

【参考方案3】:

第二个中的() 意味着调用函数将结果传递给setInterval。括号是明确要求调用函数的运算符;毕竟,这就是为什么要将括号括在 setInterval 的参数周围。

函数名本身就是 JavaScript 中的有效表达式。这种表达式的值是对函数的引用。这是您在设置间隔计时器时想要的值——您想告诉系统在计时器到期时调用什么函数,因此您传递对它的引用。

【讨论】:

以上是关于javascript中setInterval函数是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

在javascript中 setInterval()、clearInterval()、clearTimeout()等等常用的函数的含义是啥?

setInterval 中的 Javascript 函数

在JavaScript的SetInterval()函数中传递参数

在javascript中 setInterval()clearInterval()clearTimeout()等等常用的函数的含义

带参数的 Javascript setinterval 函数

JavaScript--函数中()的作用