好笑
2016-03-02 17:28
<!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);
function state(){int=setInterval(clock,1000);}
</script>
</head>
<body>
<form>
<input type="text" id="clock" size="50" />
<input type="button" value="Stop" onclick="clearInterval(int)" />
<input type="button" value="state" onclick="state()" />
</form>
</body>
</html>
对不起· 我修正一下我的回复~ 还有就是 并不是因为你多设置了一个setInterval 而是因为你连续点击两次就产生了两个。clearInterval一次只能清除一个
state()中有闭包,里面的int不会被gc回收掉,所以会一直计数,不会停止、而且点击state按钮速度慢一点,能比较明显得感觉到有停滞,说明只clear了其中一个int。也就是前面的var int= setInterval(clock,1000);你也可以在function state(){int=setInterval(clock,1000); console.log(int);} 并且在chrome中进行测试,在控制台进行观察。
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题