<script>
/*window.onload=function()
{
var a=10;
var oInput=document.getElementById('btn');
oInput.onclick=function()
{
var timer=null;
var b=5;
timer=setInterval(function(){
var c=b--;
var d=a--;
alert(c)
alert(d)
if(c==0||d==0)
{
clearInterval(timer)
}
},30)
}
}*/
window.onload=function()
{
var a=10;
var oInput=document.getElementById('btn');
oInput.onclick=function()
{
var timer=null;
timer=setInterval(function(){
var b=5;
var c=b--;
var d=a--;
alert(c)
alert(d)
if(c==0||d==0)
{
clearInterval(timer)
}
},30)
}
}
</script>
</head>
<body>
<input id="btn" type="button" value="点击观察" />
</body>
两条代码,唯一不同就是b的位置,结果也是不同的。问题:第一条代码的c会随着点击的次数的增多,值不断下降,在c==0的时候关闭定时器。而第二条代码的c,无论点击多少次,它的值都不会变化,在d==0的时候才关闭定时器。请问产生这种情况的根本原因是什么?两种定义方式的差别和影响又是什么?
/*window.onload=function()
{
var a=10;
var oInput=document.getElementById('btn');
oInput.onclick=function()
{
var timer=null;
var b=5;
timer=setInterval(function(){
var c=b--;
var d=a--;
alert(c)
alert(d)
if(c==0||d==0)
{
clearInterval(timer)
}
},30)
}
}*/
window.onload=function()
{
var a=10;
var oInput=document.getElementById('btn');
oInput.onclick=function()
{
var timer=null;
timer=setInterval(function(){
var b=5;
var c=b--;
var d=a--;
alert(c)
alert(d)
if(c==0||d==0)
{
clearInterval(timer)
}
},30)
}
}
</script>
</head>
<body>
<input id="btn" type="button" value="点击观察" />
</body>
两条代码,唯一不同就是b的位置,结果也是不同的。问题:第一条代码的c会随着点击的次数的增多,值不断下降,在c==0的时候关闭定时器。而第二条代码的c,无论点击多少次,它的值都不会变化,在d==0的时候才关闭定时器。请问产生这种情况的根本原因是什么?两种定义方式的差别和影响又是什么?