flag = false 是什么时候被重置为true的?
照着视频的代码实践了一次,发现没有把flag重置为true的代码,但是最后确确实实是清除了定时器,那么,flag是什么时候被重置的呢?
另外,看到有人回答,flag应该被声明在定时器里面,这个是不对的。如果声明在定时器里面,那么就会出现视频中声明flag之前的bug。
求大神解答一下。
上面的问题好像有点不清晰哈,下面说清楚一点。
flag=true是放在定时器外面的,对吧?定时器里面是没有代码把flag重置为true的,当第一次代码执行到
if(icur!=json[attr]){ flag=false; }
这里的时候,flag就被赋值为false了,之后都没有给flag赋值为true。
那么最后是怎么判断到flag=true的呢?
在这里就很不明白,因为没有把flag重置为true的话,其实是没办法执行
if(flag){ clearInterval(obj.timer); if(fn){ fn(); } }
和之后的fn函数的。