为了账号安全,请及时绑定邮箱和手机立即绑定

请问下,为什么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>

谢谢大神指导



正在回答

3 回答

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

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

1 回复 有任何疑惑可以回复我~
#1

天空雨了 提问者

非常感谢!
2016-05-13 回复 有任何疑惑可以回复我~
#2

YLUEI 回复 天空雨了 提问者

也就是说如果在下面添加一个button按钮调用这个函数,就会无限执行最后爆掉是吗?
2016-05-24 回复 有任何疑惑可以回复我~

个人觉得哈,

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

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


1 回复 有任何疑惑可以回复我~
#1

天空雨了 提问者

十分感谢,int不能当变量,只是单纯的调用话,是在函数外调用。记住了,谢谢啦
2016-05-13 回复 有任何疑惑可以回复我~

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

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

1 回复 有任何疑惑可以回复我~
#1

天空雨了 提问者

十分谢谢。你说的int不能做变量名称问也有,还有调用函数,是在函数外调用。
2016-05-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信