n和count啥时候会不相等呢

来源:2-5 播放bug修复

东风破

2016-03-29 15:08

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

写回答 关注

4回答

  • 91_0002
    2018-01-10 01:58:58

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

  • iweb
    2016-08-16 18:46:14

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

  • SemineLee
    2016-08-07 23:55:02

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

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

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

    二露

    var n = ++count;这个等号不是赋值的意思吗,这两个值应该一直是相等的啊,这点能解释下吗

    2018-05-18 20:47:05

    共 1 条回复 >

  • stewart
    2016-04-12 13:29:20

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

HTML5音乐可视化

利用webAudio和canvas可视化你的音乐,让你的音乐动起来

76716 学习 · 121 问题

查看课程

相似问题