为什么start()函数里写成 “var i=setInterval(clock,1000);” 就不行了?

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Document</title>

<script type="text/javascript">


var i=setInterval(clock,1000);

function clock() {

var mytime =new Date();

var year   =mytime.getFullYear();

var month  =mytime.getMonth();

var date   =mytime.getDate();

var week   =mytime.getDay();

var weeks  =["日","一","二","三","四","五","六"];

var day    =weeks[week];

var hour   =mytime.getHours();

var minute =mytime.getMinutes();

var second =mytime.getSeconds();

time_now   =year+"年"+(month+1)+"月"+date+"日"+"星期"+day+hour+":"+minute+":"+second;

document.getElementById('txt').value=time_now;

}


function start() {

i=setInterval(clock,1000);   /*我的问题:为什么如果这行写成“var i=setInterval(clock,1000)",第二次单击stop时stop按钮就失效了呢?为嘛非得去掉这个"var"?*/

}


</script>

</head>

<body>

<input type="text" id="txt" style="width:200px">

<input type="button" onclick="start()" value="start">

<input type="button" onclick="clearInterval(i)" value="stop">

</body>

</html>


Candy3610866
浏览 1822回答 4
4回答

Cassie_yu

在函数内部用var声明的变量只在函数内部调用有效,即是一个局部变量。所以在函数的外部是访问不到的......

至善笃行

局部与全局问题吧,变量写到外面就可以了,看你问题都懒得看代码了,哈哈

nicole820

\(^o^)/对的

hulukid

局部变量在外部不能访问
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript