setInterval,setTimeout的用法

本文探讨了在JavaScript中使用setInterval调用函数的不同方式,特别是对于无参及带参函数的区别,并通过实例展示了不同调用方法的效果。

自定义一个函数:

1 function myFunc(){
2 //do somthing;
3  }
4
5  function myFunc2(data){
6 do something;
7 }

调用第一个函数这三种写法:

setInterval(myFunc,1000);

setInterval("myFunc()",1000);

第三种是匿名函数,也就是说不要自定义了:setInterval(function(){...;},1000);

 

而调用第二个函数显然第一种调用法就失效了,因为没法送参数,除非你把参数都默认了,不然只有在调用的时候把参数送进去:

setInterval("myfunc2('aaa')",1000);

假如参数是一个元素/对象的话呢?以jQuery为例:

setInterval("myfunc2($('#txtmsg'))",1000);

原生js当然一样:

setInterval("myFunc2(getElementById('txtmsg'))",1000);

 

====补充

经反复实验,如下用法均可行:

ContractedBlock.gifExpandedBlockStart.gif代码
1 <script type="text/javascript">
2 var a="3",b="4", c;
3 onload=function(){c=document.getElementById('t1').value;}
4 function getc(){return document.getElementById('t1').value;}
5 function test(a,b){alert(a+b);}
6 function test2(a){alert(a.value);}
7 // setTimeout(test(a,b),1000);
8   // setTimeout(test(3,"4"),1000);
9   // setTimeout("test(a,b)",1000);
10 // setTimeout("test(document.getElementById('t1').value,2)",1000);
11 // setTimeout(test(document.getElementById('t1').value,2),1000);//错误
12 //setTimeout("test(c,b)",1000);
13 // setTimeout(test(c,b),1000);//提示C未定义
14 // setTimeout(test(getc(),b),1000);//错误
15 // setTimeout("test(getc(),b)",1000);
16 // setTimeout("test2(document.getElementById('t1'))",1000);
17 //setTimeout(test2(document.getElementById('t1')),1000);//错误
18 </script>
可见,带了参数的调用方法很是灵活,而且用引号传递的话,会比直接传递函数对象适用范围广很多,

上例中,凡是出错的地方,全在传递对象的时候

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值