关于使用一个优于其他函数语法的好处的问题

时间:2011-05-18 20:00:06

标签: javascript jquery

我正在阅读函数声明和函数表达式之间的区别

What is the difference between a function expression vs declaration in JavaScript?

var functionName = function() {} vs function functionName() {}

我开始知道在解析时定义一个而在运行时定义另一个的区别。但我的好奇心是关于使用哪个以及哪个不使用,以及为什么一个人会优先于其他人。

2 个答案:

答案 0 :(得分:0)

关于该主题的

This is a detailed writeup

仅供参考,即使在函数表达式中,您也可以在括号前面加上一个functionName:

var functionName = function functionName() { ... }

使用具有函数名称的表单(function()之间)的一个原因是,在显示堆栈跟踪时,调试器可以帮助告诉您发生了什么功能。

使用函数表达式的一个原因是,您可以更灵活地将函数放入命名空间。因此,如果您使用命名空间organize your javascript into modules,则可能需要使用函数表达式。

由于这些原因,上述形式(具有功能名称的函数表达式)可以被认为是两全其美的。但它有重复的缺点(DRY!)。

答案 1 :(得分:0)

真的很少。 function foo(x)只是foo = function(x)的简写。添加var会限制范围,与Javascript中的任何名称一样。