三个相似的片段包括函数前向引用,但行为不同。第一个在我看来很奇怪。为什么?
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
最佳答案
在第一个示例中,foo
没有return
语句,因此无论bar 的返回值是什么,它都会返回
是。 undefined
()
要更正它以提供与其他结果相同的结果,请添加 return
语句。
function foo() { return bar(); }
function bar() { return "bar"; }
alert(foo());
关于javascript - 功能前向引用工作异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15358019/