亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

代碼疑問(全局變量和局部變量)

var?data=['Phone5','Ipad','三星筆記本','佳能相機','惠普打印機','謝謝參與','50元充值卡','1000元超市購物券'],
????timer=null,
????flag=0;

window.onload=function(){
????var?play=document.getElementById('play'),
????????stop=document.getElementById('stop');

????//?開始抽獎
????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';
}
  1. 老師的源碼中,第六行和第七行聲明了兩個變量,請問是全局變量嗎?

  2. 如果是,為什么還要在playFun和stopFun這兩個函數中進行獲?。?/p>

  3. 我自己試了一下,把29行從函數內取出放在第8行,并把30、41行刪掉,在瀏覽器中依舊可以使用,效果一樣。

正在回答

1 回答

var?data=['Phone5','Ipad','三星筆記本','佳能相機','惠普打印機','謝謝參與','50元充值卡','1000元超市購物券'],
	timer=null,
	flag=0;
window.onload?=?function(){
	var?play?=document.getElementById('play'),
		stop?=document.getElementById('stop'),
		title=document.getElementById('title');

	//開始抽獎
	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(){
	clearInterval(timer);
	timer=setInterval(function(){
		var?random=Math.floor(Math.random()*data.length);
		//console.log(random);在控制臺顯示		
		title.innerHTML=data[random];
	},50);
	play.style.background='gray';
	flag=1;
}

function?stopFun(){
	clearInterval(timer);
	play.style.background='red';
	flag=0;

}

這是我寫的,效果一樣,stopFun和playFun兩個函數同樣也是寫在了onload外面,并且沒有重新再獲取按鈕,為什么一樣可以調用onload里面的變量。

老師在視頻里說的在onload外面是需要重新獲取的,還是我理解錯了,請大神們解答。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

代碼疑問(全局變量和局部變量)

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號