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

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

發現一個錯誤,變量flag放置位置的問題,不是很懂

老師是把變量直接放置在了function start(obj,json,fn){????的下方

而我運行

oLi.onmouseover = function(){

start(oLi,{width:400,height:200,opacity:100},function(){

start(oLi,{opacity:30},function(){

start(oLi,{width:200,height:100})

})

})

}

這段代碼的時候,發現透明度沒變化

然后我把var flag = true; 放置到了for in 上方 定時器下第一個

就可以正常運行了

但我不太明白是什么原因,可否解釋的明白一點

老師寫在function start(obj,json,fn)這個函數的局部內不是都應該有效嗎

正在回答

2 回答

我試過把var flag = true;?放置到for in 上方和放在function start(obj,json,fn)這個函數的局部內都是可行的。

兩者的區別是:前者是在setInterval( ? ,30)內,所以相當于每30ml對flag 賦一次 true;?

后者的var flag = true; 相當于是“全局變量”,在setInterval( ? ,30)內當然可以使用flag,更可以改變flag.

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

wgx12138

你好,請問如果把flag設為“全局變量”時,在setInterval(function(){} ,30)中改變flag值為false,指的是每30毫秒可以改變flag值為false,但每次執行定時器時flag的值還是true嗎?在setInterval(function(){} ,30)中改變flag值是不會改變flag在“全局”中的值嗎?
2016-05-20 回復 有任何疑惑可以回復我~
#2

慕之光 回復 wgx12138

每次執行定時器時flag的值如果在別的地方沒有對其做修改,那永遠會是false的。所以說老師的那個例子是有錯誤的。把老師的那段代碼改成鏈式運動就能發現錯誤
2016-05-21 回復 有任何疑惑可以回復我~

我對著flag判斷不等于那塊不明白,你明白嗎

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

舉報

0/150
提交
取消
JS動畫效果
  • 參與學習       113918    人
  • 解答問題       1502    個

通過本課程JS動畫的學習,從簡單動畫開始,逐步深入各種動畫框架封裝

進入課程

發現一個錯誤,變量flag放置位置的問題,不是很懂

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

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

幫助反饋 APP下載

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

公眾號

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