外面直接调用运行定义的函数不行吗?
为什么要在内部再加一个计时器
你可以试试对以上代码中的注释行1、注释行2以及button的onclick事件分别进行注释,看看运行结果,结合慕课网上的资料,理解一下。
首先,在button中加一个点击事件来直接调用运行定义的函数是可行的。以下是我的代码:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计时器</title>
<script type="text/javascript">
var num=0;
function startCount() {
document.getElementById('count').value=num;
num=num+1;
setTimeout("startCount()",1000); //注释行1
}
//setTimeout("startCount()",1000);//注释行2
</script>
</head>
<body>
<form>
<input type="text" id="count" />
<input type = "button" id = "dian" onclick = startCount() />
</form>
</body>
</html>
注释行1中是位于startCount()方法中,不调用是不会执行的,当注释行1被注释,注释行2和button的点击事件未被注释时,这段代码就无法自动循环,届时输出的只是你点击button的次数,而不会自动按时计数。
当注释行1存在时,就可以按时间自动循环完成计数功能。
注释行2和button中的onclick点击事件作用是差不多的,区别在于:注释行2未被注释时,无论button情况如何,最迟在1000毫秒后都会执行startCount()方法。当注释行2被注释后,只有button如上创建了点击事件,并点击,才会执行startCount()方法,并自动循环完成计数功能(需要注释行1未被注释)。