setTimeout 浏览器兼容

来源:互联网 发布:gephi数据集下载 编辑:程序博客网 时间:2024/06/16 09:47


<script type="text/javascript">
function show(str) {
     // str是全局变量,函数正确执行
     alert(str);
}
function test() {
     var str="test";
     setTimeout(function(){show(str);},100);
}
test();
</script>

在上面的例子中,调用setTimeout时定义了一个匿名函数,它的函数体是“show(url);”,因为已经定义了函数,所以在定时器调用这个函数时,变量url还是有引用的,因些函数可以正确执行,显示出字符串“test”。

总的来说,使用setTimeout或者setInterval时需要注意以下几点:

1. 定义定时器时如果是使用的表达示,那么其中的变量应该是全局变量,或者是一个直接的值,而不能是局部变量。

2. 定义定时器时如果是定义的调用函数,那么应该只写函数名,而不能加括号,如果加了就是定义返回值了。

3. 在IE里使用定时器时不能传递参数。

4. 如果要在IE里使用定时器时传递参数,可以使用匿名函数,在函数体中调用原来该调用的函数。

原创粉丝点击