js 加载顺序的问题?

为什么global.width 会的到undefined,网页的加载顺序不是自上而下的吗?

<script>var global = {};

(function(){   var action = function() {
       global.width = document.documentElement.clientWidth;
   }   document.addEventListener("DOMContentLoaded", action, flase);
})();</script><script>
   alert(global.width);  //undefined ??</script>


慕哥6287543
浏览 589回答 1
1回答

慕神8447489

<script>var&nbsp;global&nbsp;=&nbsp;{};//A(function(){&nbsp;&nbsp;&nbsp;var&nbsp;action&nbsp;=&nbsp;function()&nbsp;{//D &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;global.width&nbsp;=&nbsp;document.documentElement.clientWidth; &nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;document.addEventListener("DOMContentLoaded",&nbsp;action,&nbsp;flase); })();//B</script><script> &nbsp;&nbsp;&nbsp;alert(global.width);&nbsp;&nbsp;//undefined&nbsp;??&nbsp;c</script>A.声明并初始化一个global变量B.定义了一个立即执行函数,函数被马上执行,为document添加了对DOMContentLoaded的绑定,绑定的函数为actionC.执行本地alert组件,width在global对象中是不存在的D.等到DOMContentLoaded事件发生时,action回调函数才会被调用JS事件异步调用且单线程执行,必须等到当前的同步代码执行完毕后,事件的回调才有可能被回调;同理一个事件回调函数被执行,其它JS代码是没机会执行
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript