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

11 浏览
0 Comments

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

在这个回答中,我注意到了类似于以下代码的写法:\n

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

\n在这种特定情况下,为什么要这样写,而不直接使用以下方式:\n

function foo(param) {
  ...
}

\n这样做有什么优势或动机?

0
0 Comments

在JavaScript中,使用var foo = function foo(i) { ... }这种写法的动机或优势是什么?

简单来说,如果你看下面的代码,第一个例子创建了一个名为foo的函数,第二个例子创建了一个匿名函数并将其赋值给bar变量。除了风格之外,基本的区别是foo函数可以在代码中被调用,即使在它的定义之前(因为它是函数的名字);而bar在接收到赋值之前是一个未定义的变量,因此在赋值之前不能使用。

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

建议你阅读的建议是。

0