代碼疑問(wèn)(全局變量和局部變量)
var?data=['Phone5','Ipad','三星筆記本','佳能相機(jī)','惠普打印機(jī)','謝謝參與','50元充值卡','1000元超市購(gòu)物券'], ????timer=null, ????flag=0; window.onload=function(){ ????var?play=document.getElementById('play'), ????????stop=document.getElementById('stop'); ????//?開始抽獎(jiǎng) ????play.onclick=playFun; ????stop.onclick=stopFun; ???//?鍵盤事件 ???document.onkeyup=function(event){ ??????event?=?event?||?window.event; ??????if(event.keyCode==13){ ?????????if(flag==0){ ???????????playFun(); ???????????flag=1; ?????????}else{ ???????????stopFun(); ???????????flag=0; ?????????} ??????} ???} } function?playFun(){ var?title=document.getElementById('title'); var?play=document.getElementById('play'); clearInterval(timer); timer=setInterval(function(){ ???var?random=Math.floor(Math.random()*data.length); ???title.innerHTML=data[random]; },50); ????play.style.background='#999'; } function?stopFun(){ clearInterval(timer); var?play=document.getElementById('play'); play.style.background='#036'; }
老師的源碼中,第六行和第七行聲明了兩個(gè)變量,請(qǐng)問(wèn)是全局變量嗎?
如果是,為什么還要在playFun和stopFun這兩個(gè)函數(shù)中進(jìn)行獲???
我自己試了一下,把29行從函數(shù)內(nèi)取出放在第8行,并把30、41行刪掉,在瀏覽器中依舊可以使用,效果一樣。
2016-02-03
這是我寫的,效果一樣,stopFun和playFun兩個(gè)函數(shù)同樣也是寫在了onload外面,并且沒(méi)有重新再獲取按鈕,為什么一樣可以調(diào)用onload里面的變量。
老師在視頻里說(shuō)的在onload外面是需要重新獲取的,還是我理解錯(cuò)了,請(qǐng)大神們解答。