函数转发引用异常

时间:2013-03-12 09:54:56

标签: javascript

三个相似的片段包括函数转发引用,但表现不同。第一个似乎很奇怪。为什么呢?

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

1 个答案:

答案 0 :(得分:4)

在第一个示例中,foo没有return语句,因此无论undefined的返回值是什么,它都会返回bar()

要更正它以提供与其他人相同的结果,请添加return语句。

function foo() { return bar(); }
function bar() { return "bar"; }
alert(foo());