可能重复:
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代码导航器可以读取我的所有功能
答案 0 :(得分:2)
两者都可以接受。的确,您也可以这样做:
foo = function bar() {
console.log(arguments.callee.name);
};
如果您再拨打foo()
,则会在控制台中看到"bar"
。
第一种方法创建一个匿名函数并将其分配给变量。
第二种方法创建一个命名函数并将其放在当前范围内。
第三种方法创建一个命名函数并将其赋值给一个变量。但是,这次,名称仅存在于该函数的范围内。
声明具有名称(function name () {}
)的函数的优点是,您可以从内部更轻松地调用函数,这可能是实现递归算法所必需的。如果不这样做,则必须使用arguments.callee.name
才能在其内部调用函数,但在MDN中会发出警告。
所有这些都是一种啰嗦的方式,说这两种方式都是可以接受的,如果有疑问,使用命名函数就不会出错。