函数正向引用工作异常

Function forward reference works exceptionally

本文关键字:工作 异常 引用 函数      更新时间:2023-09-26

三个类似的代码片段包括函数前向引用,但行为不同。第一个在我看来很奇怪。为什么?

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());