命名功能的不同方式?

时间:2013-10-31 14:43:18

标签: javascript function naming

在Javascript中有什么区别:

var name = function() { //stuff to do };

{name : function() { //stuff to do } };

function name() { //stuff to do };

1 个答案:

答案 0 :(得分:3)

由Stoyan Stefanov在"JavaScript Patterns"写的:

  

在函数声明和命名函数表达式中,名称   属性是定义的。在匿名函数表达式中,它取决于   实施;它可以是未定义的(IE)或用   空字符串(Firefox,WebKit):

function foo() {} // declaration
var bar = function () {}; // expression
var baz = function baz() {}; // named expression

foo.name; // "foo"
bar.name; // ""
baz.name; // "baz"
     

在Firebug或其他程序中调试代码时,name属性非常有用   调试器。当调试器需要在函数中显示错误时,   它可以检查name属性的存在并将其用作   指示符。 name属性也用于调用相同的函数   从内部递归。如果你对这些不感兴趣   两种情况,然后一个未命名的函数表达式将更容易和   不那么冗长。

     

针对函数声明的情况和偏好的原因   函数表达式是表达式突出显示的函数   是所有其他对象的对象,而不是一些特殊的语言   构造