可能重复:
var fn = function() {…} 和 var fn = function foo() {…} 有什么不同吗?
从这里
我了解声明函数和将它们声明为变量之间存在差异。
但尚不清楚以下之间是否有任何区别:
var func_name = function(param, param1){...};
和:
var func_name = function func_name(param, param1){...};
它们完全一样吗?
可能重复:
var fn = function() {…} 和 var fn = function foo() {…} 有什么不同吗?
从这里
我了解声明函数和将它们声明为变量之间存在差异。
但尚不清楚以下之间是否有任何区别:
var func_name = function(param, param1){...};
和:
var func_name = function func_name(param, param1){...};
它们完全一样吗?
在 JavaScript 中有两种声明函数的方法。
函数声明是语句,因此它们以 function 关键字开头,您必须为函数命名。
这些也在代码执行开始之前被解析,所以下面的代码不会抛出错误:
foo(); // "foo" exists because it was created at parse time
function foo() {
}
函数表达式——顾名思义——表达式。表达式中的函数被视为任何其他值(例如数字、字符串等),它们的命名完全是可选的。
表达式中的函数是在运行时创建的,所以下面的代码会 抛出一个期望:
foo(); // "foo" does not exist yes because it will not be created until the line below is executed
var foo = function() {
}
函数名称主要有两个好处。
如前所述,在表达式的情况下,名称可以省略;因此,创建一个所谓的匿名函数
因此,在您的示例中,您有两个函数表达式,其中一个是匿名函数,另一个不是。
另见:http ://bonsaiden.github.com/JavaScript-Garden/#function.general
答案是不”。
您始终可以在函数内部通过其名称调用该函数。
var func_name = function other_0func_name(param, param1){
..... ;
other_func_name()};
我很确定这只是为了使调试更容易。
var func_name = function(param, param1){...};
将创建一个匿名函数并分配给变量“func_name”
var func_name = function func_name(param, param1){...};
将创建一个名为“func_name”的函数,然后将该函数分配给变量“func_name”
如果您在控制台中测试这两行,您将看到
var func_name = function(param, param1){};
console.log(func_name)
会给
function (param, param1){}
然而
var func_name = function func_name(param, param1){};
console.log(func_name)
会给
function func_name(param, param1){}
使用方面没有区别,因此出于您的目的,它们是相同的。希望这可以清除它。