没有jquery的DOM onLoad事件

时间:2013-05-13 04:29:45

标签: javascript-events

HTML code:

<html>
   <head>
   </head>
   <body>
      <script type="text/javascript" src="/js/colorbook.js"></script>
      <script type="text/javascript">
          book.init();
      </script>
   </body>
</html>

JS代码:

var book = (function(){
   init = function(){
   console.log ( "initialized")
   }return init();
}());

问题:以上代码有效。但我无法理解如何?任何JS人员都可以帮助我或指导我如何开始调试此代码以理解它。

1 个答案:

答案 0 :(得分:0)

好的,根据你的评论。当浏览器从传入数据流中读取时,您所拥有的Javascript都会按顺序执行。话虽如此,第一个脚本标签中包含的所有javascript都将被执行。然后第二个脚本标签也将按顺序执行。

现在,您可以将book.init()视为最后提供的要执行的javascript调用。

我在jsfiddle中尝试了你的JS代码,无法让它工作检查This Fiddle看看我的意思。

您的JS代码中发生的事情是()声明末尾的最后var book执行匿名函数,该函数会将该行打印到控制台。但是,从您提供的代码中,book变量永远不会获得book.init()方法。因此,一旦达到该调用,它将抛出未定义的错误。