请问下,为什么var int=setInterval(clock,1000)不可以放到function clock(){}里面

来源:8-3 计时器setInterval()

天空雨了

2016-05-12 17:17

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>定时器</title>
<script type="text/javascript">
    function clock(){
    var time=new Date();
    document.getElementById("clock").value = time;
  }
    var int=setInterval(clock,1000)
</script>
</head>
<body>
<form>
<input type="text" id="clock" size="50"  />
</form>
</body>
</html>

上面这段代码为什么不能这样?

<script type="text/javascript">
    function clock(){
    var time=new Date();
    document.getElementById("clock").value = time; 

    var int=setInterval(clock,1000);

  }
 </script>

谢谢大神指导



写回答 关注

3回答

  • 范克里夫
    2016-05-12 23:21:57
    已采纳
    1. 定义函数时,函数体的代码不会执行。

    2. 这个函数只要调用了,就会无限递归,Boom!

    YLUEI 回复天空雨了

    也就是说如果在下面添加一个button按钮调用这个函数,就会无限执行最后爆掉是吗?

    2016-05-24 16:56:17

    共 2 条回复 >

  • 飞1928
    2016-05-12 17:49:55

    个人觉得哈,

    1、是变量的名字取得不合适,int是整形不能当作变量。

    2、  var int=setInterval(clock,1000);这个应该是调用的函数吧,这种写法对吗?也许是没理解你的目的,要是想调用函数,肯定是在函数外调用,并不是在函数里面里面调用,又不是递归调用!


    天空雨了

    十分感谢,int不能当变量,只是单纯的调用话,是在函数外调用。记住了,谢谢啦

    2016-05-13 08:23:55

    共 1 条回复 >

  • 慕哥9929399
    2016-05-12 17:41:54

    int 为javaScript 的保留字。不能当做其变量名称。你尝试换一个变量名,保留字的定义如下:

    保留字(reserved word),指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用

    天空雨了

    十分谢谢。你说的int不能做变量名称问也有,还有调用函数,是在函数外调用。

    2016-05-13 08:27:19

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468194 学习 · 21891 问题

查看课程

相似问题