三个类似的片段包括函数前向引用,但行为不同。第一个在我看来很奇怪。为什么?
function foo() { bar(); }
function bar() { return "bar"; }
alert(foo());
-> undefined
function foo() { bar(); }
function bar() { alert("bar"); }
foo();
-> bar
function foo() { return bar; }
bar = "bar";
alert(foo());
-> bar