JS新手请问大家addLoadEvents的原理是什么?
这个是打印结果:是正常的而且令人满意的.
这个是window.onload默认的绑定事件.
这个是追加fn1
这个是追加fn2
这个是追加fn3
但是从代码运行来看打印的结果应该是这样的呀:
这个是window.onload默认的绑定事件.
这个是追加fn1
这个是window.onload默认的绑定事件.
这个是追加fn2
这个是window.onload默认的绑定事件.
这个是追加fn3
为什么很巧妙的规避默认window.onload事件函数的重复执行了呢? 麻烦大家,谢谢!
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
其实也不巧妙吧,刚才看得有点懵逼。
试着用一个i来记录,才意识到,这个onload就执行了一次,因为addLoadEvents把onload回调改写了:先执行前一个onload回调,然后再执行新回调。
所以代码一走下来,就是
默认的回调+fn1的执行+fn2+fn3;所以可以看到执行结果是
个人理解这里跟window.onload执行机制有关,onload会等到页面dom,图片,音视频,js等都加载解析完成才会执行,因此三个addLoadEvents函数都是在往window.onload里添加函数,最后js解析完成开始执行window.onload