【发布时间】:2013-10-10 18:52:13
【问题描述】:
我正在浏览这篇关于函数声明和函数表达式之间区别的博客。
它给出了这两个例子。他们称第一个为“匿名函数表达式”,第二个为“命名函数表达式”。
// anonymous function expression
var a = function(){
return 3;
}
// named function expression
var b = function bar(){
return 3;
}
我在 Chrome 的 JS 控制台中测试了这两个,我看到以下内容:
a()
=> 3
b()
=> 3
bar()
=> bar is not defined
我的问题是:在第二个函数表达式声明中,“bar”的意义何在?一般来说,为什么要使用命名函数表达式?
【问题讨论】:
-
@Juhana 不是一个好的副本,那里的答案(以及被标记为重复的答案)仅涉及提升和堆栈跟踪。这里至少还有一个其他答案也提到了递归。但是,我找不到更好的骗子......
标签: javascript function-expression