关于setInterval()的一个问题

vart=null;setInterval(move(),1000)functionmove(){alert(1)}写的这个函数为什么只能调用一次。vart=null;s... var t = null;
setInterval(move(),1000)
function move(){
alert(1)
}
写的这个函数为什么只能调用一次。
var t = null;
setInterval(move,1000)
function move(){
alert(1)
}
或者
var t = null;
setInterval(“move()”,1000)
function move(){
alert(1)
}
这样写就能一直调用。求大神指导这是怎么回事?本人新人小白...
展开
 我来答
网海1书生
科技发烧友

推荐于2017-12-16 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12315 获赞数:26236

向TA提问 私信TA
展开全部
setInterval要求第一个参数必须是含Javascript命令的字符串或函数对象,所以

setInterval("move()",1000)

以及
setInterval(move,1000)

这两个都是正确的。

setInterval(move(),1000)

当Javascript运行到这个语句时,会立即执行move这个函数,然后把函数的返回值作为setInterval的第一个参数,而由于move函数没有返回值,实际就相当于
setInterval(null, 1000)
这个当然就不会运行啦,表面看起来就是move只运行了一次。

move()和move是不相同的,move()是语句,表示要立即执行这个函数的意思;move则是一个函数对象,代表了这个函数本身,本身是不会运行的,可以把它赋值给其他对象或作为其他函数的参数。
dingtie18y
2014-07-31 · TA获得超过136个赞
知道答主
回答量:105
采纳率:100%
帮助的人:107万
展开全部
var num=0; //初始量 var a1=document.getElementById("dot"); //获得盒子 function one(); //执行的函数 alert("num:"+num); num++; } var s1=-1;//初始化变量 function circleOne(){ s1=setInterval(one,3000); } circleOne(); //循环开始 a1.onmouseover=function(){ //鼠标放到盒子上停止函数 clearInterval(s1); } a1.onmouseout=function(){ //鼠标移出去接着执行函数 if(s1==-1){ circleOne(); } }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式