javascript - 在 Javascript 中,使用 var foo = function foo(i) { ... } 的动机或优势是什么?

标签 javascript function-declaration

我在

的回答中看到了这一点

In Javascript, why write "var QueryStringToHash = function QueryStringToHash (query) { ... }"?

这是在做类似的事情

var foo = function foo(param) {
  ...
}

在那种特殊情况下,为什么要这样做而不是仅仅使用

function foo(param) {
  ...
}

?这样做的优势或动机是什么?

最佳答案

简而言之,如果您采用以下代码,第一个示例创建一个名为 foo 的函数,第二个示例创建一个匿名函数并将其分配给 bar 变量.除了样式之外,基本区别在于 foo 可以在代码中在定义之前调用(因为它是函数的名称);否则,bar在接受赋值之前是一个 undefined variable ,因此之前不能使用。

var foo_result = foo(123); // ok
function foo(param) { /* ... */ }

var bar_result = bar(123); // error: undefined is not a function
var bar = function(param) { /* ... */ }
var bar_result = bar(123); // ok

我建议您阅读@Pekka 的建议。

关于javascript - 在 Javascript 中,使用 var foo = function foo(i) { ... } 的动机或优势是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3401290/

相关文章:

javascript - 如何为单页应用程序重新排列 div

javascript - jQuery-自动完成滚动问题

javascript - 我想根据客户端系统时区更改日期和时间

c++ - 函数声明中的等式

c - 为什么要在方法定义文件中包含 header ?

C++11, `noexcept` 说明符,定义与声明

javascript - 使用javascript获取数据列表内超链接的ID

php - 将 JS 创建的输入文本框的值插入数据库

c++ - C++ 函数声明中,右括号前的 & 符号有何作用?

c - 函数指针声明