问答详情
源自:6-2 完美运动框架

发现一个错误,变量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)这个函数的局部内不是都应该有效吗

提问者:高手之路 2016-05-13 11:19

个回答

  • 慕之光
    2016-05-16 15:43:53
    已采纳

    我试过把var flag = true; 放置到for in 上方和放在function start(obj,json,fn)这个函数的局部内都是可行的。

    两者的区别是:前者是在setInterval(   ,30)内,所以相当于每30ml对flag 赋一次 true; 

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

  • Dream0703
    2016-05-14 11:38:45

    我对着flag判断不等于那块不明白,你明白吗