代码一:
<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)
暂无评论。