但是,这两个代码段的行为不同:
a(); function a() { alert("Booya"); }
打印Booya.
a(); a = function() { alert("Booya"); }
失败有一个例外,这是有道理的,因为a在调用时确实没有被定义.
那么 – 即使a()被定义在其使用点之下,什么样的’魔术’让第一个片段工作?