javascript - 功能前向引用工作异常

标签 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

最佳答案

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

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

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

关于javascript - 功能前向引用工作异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15358019/

相关文章:

javascript - 使用 Webpack 或 Babel 通过前端的 import 语句使用 node_modules

javascript - 基于输入数组操作复杂对象

javascript - 另一个触发器完成后触发点击事件

javascript - Phonegap 3 上有 onExit 或 onDestroy 方法吗?

javascript - 如何使用 Javascript 在网页上创建一个列表,其中每个元素都基于模板?

将年分解为小时天分钟秒的 Javascript 计算器

Javascript:呈现网页后可以动态呈现哪些 Document 对象属性?

javascript - 在 Firefox 中捕获用户设置的文本区域大小

Javascript 匿名函数 - 定义

JavaScript 运行时错误 : Unable to get property 'activate' of undefined or null reference