javascript中setTimeout()和setInterval()的区别

    setTimeout() : 用于在指定的毫秒数后调用函数或计算表达式;  按照指定的周期(以毫秒计)来调用函数或计算表达式. 会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭; 两个函数的区别在于它们的执行次数不一样, setTimeout()只执行一次;而setInterval()无限次循环执行。

    使用clearTimeout(t);和clearInteval(t);来结束它们。它们的第一个参数都是含有 JavaScript 语句的字符串,第二个参数指示从当前起多少毫秒后执行第一个参数。但是用函数名作为调用句柄时都不能带参数,譬如说setTimeout(Time(hours),3000);主要原因在于这样做使Time函数立即执行,并将返回值作为调用句柄传递给setTimeout函数,但是这样的结果并不是setTimeout想要的。面对这样的情况,可以变换一下:

<script language="JavaScript" type="text/javascript">
function Time(hours){
alert(hours);
}
function Time1(hours){
return function(){
Time(hours)
}
}
window.setTimeout(Time1(hours),1000);
</script>
定义一个函数用于接收一个参数,然后返回一个不带参数的函数, 在这个函数内部使用外部函数的参数,进行调用的时候不需要使用参数。在 window.setTimeout函数中,使用 (Time1(hours) 来返回一个不带参数的 函数句柄,继而解决这个不能传递参数的问题。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值