任何人都可以帮助理解以下两个函数表达式之间的区别:
a) var bar = function() {};
b) var bar = function foo() {};
我一直在写a)写的方式。 在b)中将函数名称赋予“foo”的重要性是什么?
a)如何与b)不同?
答案 0 :(得分:6)
方法a:一个名为bar
的变量,它引用匿名函数。函数只能在范围内的任何位置使用变量bar
来使用。
方法b:变量名bar
,引用命名函数foo
。 foo
仍然可以在名称范围内的任何位置使用bar
。
正如Paulpro所说 - foo
只在函数本身的范围内,对于递归函数很有用。
答案 1 :(得分:0)
命名函数可能不会影响代码,但它对调试非常有用,在构造函数中,它定义了原型的名称。