我正在阅读函数声明和函数表达式之间的区别
What is the difference between a function expression vs declaration in JavaScript?
var functionName = function() {} vs function functionName() {}
我开始知道在解析时定义一个而在运行时定义另一个的区别。但我的好奇心是关于使用哪个以及哪个不使用,以及为什么一个人会优先于其他人。
答案 0 :(得分:0)
仅供参考,即使在函数表达式中,您也可以在括号前面加上一个functionName:
var functionName = function functionName() { ... }
使用具有函数名称的表单(function
和()
之间)的一个原因是,在显示堆栈跟踪时,调试器可以帮助告诉您发生了什么功能。
使用函数表达式的一个原因是,您可以更灵活地将函数放入命名空间。因此,如果您使用命名空间organize your javascript into modules,则可能需要使用函数表达式。
由于这些原因,上述形式(具有功能名称的函数表达式)可以被认为是两全其美的。但它有重复的缺点(DRY!)。
答案 1 :(得分:0)
真的很少。 function foo(x)
只是foo = function(x)
的简写。添加var
会限制范围,与Javascript中的任何名称一样。