-1

可能重复:
JavaScript:var functionName = function() {} vs function functionName() {}
Javascript 中的函数表达式与声明有什么区别?

声明 Javascript 函数的正确方法是什么?

从 codeacademy.com 我得到了这样的方法:

var someFunction = function(paramA, paramB){
    // do some function here
}

但是因为我的编程基础是 PHP,所以我更喜欢用这种方式声明函数:

function someFunction(paramA, paramB){
    // do some function
}

我关心的是推荐使用哪种方法来声明函数,我担心如果我的首选方式会产生一些后果,但我非常喜欢这种方式,因为它使我的 NetBeans Code Navigator 可以读取我的所有函数。

Netbeans 代码导航器

4

1 回答 1

2

两者都可以接受。事实上,你也可以这样做:

foo = function bar() { 
          console.log(arguments.callee.name); 
};

如果您随后调用foo(),您将"bar"在控制台中看到。

第一种方法创建一个匿名函数并将其分配给一个变量。

第二种方法创建一个命名函数并将其放置在当前范围内。

第三种方法创建一个命名函数并将其分配给一个变量。但是,这一次,名称只存在于该函数的范围内。

使用名称 ( ) 声明函数function name () {}的优点是,您可以更轻松地从内部调用该函数,这可能是实现递归算法所必需的。如果不这样做,则必须使用arguments.callee.name它来调用自身内部的函数,但这在MDN中被警告过。

所有这些都是一种冗长的说法,要么是可以接受的,如果有疑问,使用命名函数不会出错。

于 2013-01-22T15:29:11.297 回答