为了账号安全,请及时绑定邮箱和手机立即绑定

n和count啥时候会不相等呢

n = ++ count;这里n的值啥时候会和count不相等呢

正在回答

4 回答

说的通俗点就是onload函数是有执行时间的,所以即便click执行以后,cont自增了,load函数内部的n虽然和cont相等,但是onload函数中的n还是上一次的n,所以就不会继续执行下去,只有最后点击的那一次的load里的n和onload里的n是相等的,所以和cont也是相等的,所以才会正常播放,不再出现同步播放

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

用到了闭包的原理,每个load都会创建一个n,这个n因为内部函数onload调用,所以形成闭包,在函数执行完之后该n变量仍存在(且值一直为当时的值)onload的环境里面,所以当onload执行时,n就可能不等于现在的count(因为count一直在增长)

2 回复 有任何疑惑可以回复我~

我不知道我是否理解对了...供参考

var n = ++count;//n在函数作用域中,count是全局变量,如果还没执行完就点击count会改变,而n不会

每执行一次load(),都会声明一个n,比如点击三次,就会有三个n,它们分别的值是1,2,3.但是count是全局变量,点击三次之后count是3.所以前面两个n不等于count,不会顺利执行。只有最后一次点击时声明的n与count相等。所以只会播放最后一次点击的音频。

4 回复 有任何疑惑可以回复我~
#1

二露

var n = ++count;这个等号不是赋值的意思吗,这两个值应该一直是相等的啊,这点能解释下吗
2018-05-18 回复 有任何疑惑可以回复我~

正常情况都是相等的,这个判断只是异常(不相等)情况下  就不执行下面decode和播放

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

举报

0/150
提交
取消

n和count啥时候会不相等呢

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信