Javascript 命名函数表达式:var bar=Function(){}&;var bar=函数foo(){}

Javascript 命名函数表达式:var bar=Function(){}&;var bar=函数foo(){},javascript,function,Javascript,Function,有谁能帮助理解以下两个函数表达式之间的差异: a) var bar = function() {}; b) var bar = function foo() {}; 我一直在用一本书的方式写作。 在b中将函数名命名为“foo”的重要性是什么 a)与b)有何不同?方法a:一个名为bar的变量,它引用匿名函数。函数只能在范围内的任何位置使用变量bar 方法b:一个变量名bar,它引用一个命名函数foofoo仍然可以在范围内的任何位置按名称使用,同时也可以使用bar 正如Paulpro所提到的-fo

有谁能帮助理解以下两个函数表达式之间的差异:

a) var bar = function() {};
b) var bar = function foo() {};
我一直在用一本书的方式写作。 在b中将函数名命名为“foo”的重要性是什么


a)与b)有何不同?

方法a:一个名为
bar
的变量,它引用匿名函数。函数只能在范围内的任何位置使用变量
bar

方法b:一个变量名
bar
,它引用一个命名函数
foo
foo
仍然可以在范围内的任何位置按名称使用,同时也可以使用
bar


正如Paulpro所提到的-
foo
仅在函数本身的作用域内,对于递归函数很好。

命名函数可能不会影响代码,但对调试很有用,在构造函数中,它定义了原型的名称