木子屋 Dnawo's BLOG

详解window.setInterval方法

👤 dnawo 📅 2009-06-30 👁 8290 👍 0 💬 0 🔄 来源:本站原创
我们经常会看到下边两种代码:

代码一:
<script>
function T(){window.status=new Date();}
setInterval(T,1000);
</script>

代码二:
<script>
function T(){window.status=new Date();}
setInterval("T()",1000);
</script>

执行结果是一样的,他们有什么不同呢?下边是《JavaScript 权威指南》第五版P935中对于setInterval第一个参数的说明:

周期性地调用的一个函数或者周期性执行的JavaScript代码串。如果这个字符串含有多个语句,那么每个语句之间都用分号分隔开。在IE 4中,这个参数必须是一个字符串,但在此后的版本中就不是这样了。

这就不难解释了:代码一是周期性地调用一个函数,代码二中则是周期性的执行JavaScript代码串(类似于eval那样执行代码串);

上边例子稍做修改:

<script>
window.setInterval(window.status=new Date(),1000);
</script>

结果是状态栏中的时间更新一次后就不再更新了,此处执行过程是先执行语句"window.status=new Date()",再将其返回值(new Date()的值)当作JavaScript代码串给setInterval执行。如仍要动态的在状态栏显示当前时间,可修改如下:

<script>
window.setInterval("window.status=new Date();",1000);
</script>

评论(0)

暂无评论。

验证码
评论需审核通过后显示
← 上一篇 动态导入js引发的问题 下一篇 → 淘宝网开放平台API(taobao.taobaoke.items…