唯尔半截湘妃
2016-05-23 16:37
为什么这样,定时器没有作用
function ss()
{
var n=document.getElementById("num").innerHTML;
document.getElementById("num").innerHTML=n--;
}
setInterval(ss,1000);
而这样却有作用
var n=document.getElementById("num").innerHTML;
function ss()
{
document.getElementById("num").innerHTML=n--;
}
setInterval(ss,1000);
不是,因为如果在函数里面的话,你每次获取到的n都是5,因为你并没有修过n的来源,相当于 b=10 a=b a++ 然后a=11,b还是10的不会变
多次调用的同一个函数之间没有联系,一次调用结束后,如果没有嵌套函数页没有其他引用指向这个函数,函数里的变量就被清空了,不会被保存下来的,所以每次调用都是一个新的n
因为你将n定义在函数中,定时器每次读取函数的 时候n就会重新变为初始值
如果定义在外面,n为全局变量,调用函数的时候不会恢复为初始值
JavaScript进阶篇
468061 学习 · 21891 问题
相似问题