问答详情
源自:8-3 计时器setInterval()

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

<!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>

谢谢大神指导



提问者:天空雨了 2016-05-12 17:17

个回答

  • 范克里夫
    2016-05-12 23:21:57
    已采纳

    1. 定义函数时,函数体的代码不会执行。

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

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

    个人觉得哈,

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

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


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

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

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