函数声明

时间:2013-01-22 15:23:01

标签: javascript function

  

可能重复:
  JavaScript: var functionName = function() {} vs function functionName() {}
  What is the difference between a function expression vs declaration in Javascript?

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

从codeacademy.com我有这样的方式:

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

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

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

我关心的是推荐哪种方式来声明功能,我担心如果我的首选方式会产生一些后果,但我非常喜欢这种方式,因为它使我的NetBeans代码导航器可以读取我的所有功能

Netbeans Code Navigator

1 个答案:

答案 0 :(得分:2)

两者都可以接受。的确,您也可以这样做:

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

如果您再拨打foo(),则会在控制台中看到"bar"

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

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

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

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

所有这些都是一种啰嗦的方式,说这两种方式都是可以接受的,如果有疑问,使用命名函数就不会出错。