【问题标题】:Why does calling a named assigned function fail in JavaScript?为什么在 JavaScript 中调用命名分配函数会失败?
【发布时间】:2016-08-10 20:28:53
【问题描述】:

以下可能有点无意义,但是为什么下面的第一个调用有效而第二个调用失败?

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

foo(); // works
bar(); // undefined; i.e. "Uncaught ReferenceError: bar is not defined"

这与范围有关吗?

推论初学者的问题:函数定义“解析” - 但实际上是有效的语法 - 是否有任何上下文可以命名分配的匿名函数?

【问题讨论】:

标签: javascript function scope anonymous-function


【解决方案1】:

函数声明在当前范围内创建一个与它们同名的变量。

函数表达式(命名或匿名)没有。函数表达式的名称可作为变量在函数内部使用(它对于递归调用自身很有用)和调试工具。

【讨论】:

    猜你喜欢
    • 2010-09-30
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 2018-08-24
    • 2019-09-19
    • 2021-12-22
    相关资源
    最近更新 更多