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人员都可以帮助我或指导我如何开始调试此代码以理解它。
答案 0 :(得分:0)
好的,根据你的评论。当浏览器从传入数据流中读取时,您所拥有的Javascript都会按顺序执行。话虽如此,第一个脚本标签中包含的所有javascript都将被执行。然后第二个脚本标签也将按顺序执行。
现在,您可以将book.init()
视为最后提供的要执行的javascript调用。
我在jsfiddle中尝试了你的JS代码,无法让它工作检查This Fiddle看看我的意思。
您的JS代码中发生的事情是()
声明末尾的最后var book
执行匿名函数,该函数会将该行打印到控制台。但是,从您提供的代码中,book
变量永远不会获得book.init()
方法。因此,一旦达到该调用,它将抛出未定义的错误。