var data=['Phone5','Ipad','三星笔记本','佳能相机','谢谢参与','200元购物券','50元话费','再来一次'], timer=null; window.onload=function(){ var play=document.getElementById('play'), stop=document.getElementById('stop'), title=document.getElementById('title'); play.onclick=playFun; } function playFun(){ //var that=this;/*this指paly这个按钮*/ clearInterval(timer);/*清除定时器,防止多次启动*/ timer=setInterval(function(){ var random=Math.floor(Math.random()*data.length); title.innerHTML=data[random]; //console.log(random);/*用来调试*/ },75); play.style.background="#999"; }
window.onload里定义的变量应该是局部变量,老师在视频前半部分也说过,所以她把变量写在了需要用这个变量的函数里。但是,我刚才尝试把这个局部变量变成全局变量,结果发现这个局部变量可以在其他函数里使用,这是为什么?
window.onload 中定义的是 window.onload 函数的 局部变量 其他的函数无法使用
所以要重新定义 局部变量
你可以这么理解一下吧,首先,把变量定义在函数里,那个是函数里的局部变量,如果你把这个变量提出,在window.onload外声明,那么这个是全局变量,但是根据代码由上到下运行,body里的代码未运行就先执行了全局变量的document.getElementById,这样应该取不到值吧,个人见解,不正确请告诉我。
写在函数里面的变量是局部变量(只在函数中起作用)
window.onload中定义的是全局变量,其它函数可以引用