JavaScript作用域的一个小问题

写了一个时钟的js,发现一个问题, var t=new Date();这一行 必须放在function ch(){}中才能运行,没搞懂这个原理,求解答

<body>

<div class="div1">

<div class="div2">

<span id="y"></span>

<span id="m"></span>

<span id="d"></span>

<span id="w"></span><br />

<span id="h"></span>

<span id="m"></span>

<span id="s"></span>

</div>

</div>

<script type="text/javascript">

var span=document.getElementsByTagName('span')

var week=['日','一','二','三','四','五','六']

function ch(){

   var t=new Date();

span[0].innerHTML=t.getFullYear()+'-';

span[1].innerHTML=t.getMonth()+1+'-';

span[2].innerHTML=t.getDate();

span[3].innerHTML=week[t.getDay()];

span[4].innerHTML=t.getHours()+':';

span[5].innerHTML=t.getMinutes()+':';

span[6].innerHTML=t.getSeconds();

}

ch();

setInterval(ch,100);

</script>


dollzcx
浏览 1031回答 1
1回答

千秋此意

这不是作用域的问题吧, var t=new Date();放在函数外的话只有在页面加载的时候执行一次,也就是说你后面获取的时分秒啥的始终都是不变的,要想时间一直更新就需要每次调用函数的时候重新new Date(),所以 var t=new Date();放到函数里才没毛病啊
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript