【问题标题】:When will I use this kind of function declaration? [duplicate]我什么时候会使用这种函数声明? [复制]
【发布时间】:2016-10-29 17:08:37
【问题描述】:

这种函数声明我在看别人的代码时看到很多次了。

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

我得到了这个结果。

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

由于bar 未定义,我想知道在那里写bar 的目的是什么,以及如果我在省略bar 的情况下写它的区别。但是,我想知道人们编写这样的函数是否有某种条件或原因。

我什么时候写这样的函数?

【问题讨论】:

  • 如果函数抛出错误,堆栈跟踪将显示它发生在函数栏而不是匿名

标签: javascript function


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2020-08-15
    • 2011-12-13
    • 2019-10-10
    • 2012-04-26
    • 2014-08-01
    • 2013-10-17
    • 2023-01-28
    • 2019-10-30
    相关资源
    最近更新 更多