命名函数表达式:var bar = function(){}&var bar = function foo(){}之间的差异

Man*_*ish 4 javascript function

任何人都可以帮助理解以下两个函数表达式之间的区别:

a) var bar = function() {};
b) var bar = function foo() {};
Run Code Online (Sandbox Code Playgroud)

我一直在写a)写的方式.在b)中将函数名称赋予"foo"的重要性是什么?

如何a)与b)不同?

phu*_*uzi 6

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

方法b:bar引用命名函数的变量名foo.foo仍可以在名称范围内的任何位置使用bar,也可以使用.

正如Paulpro所提到的 - foo只是在函数本身的范围内,对于递归函数很有用.