我什么时候会使用这种功能声明?

时间:2016-06-27 15:43:47

标签: javascript function

在阅读其他人的代码时,我多次看到这种功能声明。

var foo = function bar() {
    console.log("Some text");
};

我得到了这个结果。

foo();    // "Some text"
bar();    // Uncaught ReferenceError: bar is not defined(…)

由于bar未定义,我想知道写bar的目的是什么,以及如果我省略bar来写它的区别。但是,我想知道是否存在某种情况或人们为什么写这样的功能的原因。

我什么时候会写这样的功能?

1 个答案:

答案 0 :(得分:1)

当您编写IDbCommandTreeInterceptor时,您声明了一个名为var foo = function() {}的变量,该变量具有匿名函数(没有名称的函数)。

当您编写foo时,您声明一个名为var foo = function bar() {}的变量,该变量具有名为foo的函数。这对调试很有用。当您出现错误时,它会显示它在bar中。

由于函数名仅在函数内可用,因此调用function bar()会引发错误。