声明的函数与名称和没有名称之间的区别

时间:2015-10-01 16:06:25

标签: javascript

任何人都可以告诉我这两个例子之间的区别:

//difference with this:
var x = function withName(a,b,c) {} //why i should declare a name here?

//and this
var y = function (a,b,c) {}

2 个答案:

答案 0 :(得分:1)

根据ECMA规范,可以通过声明或表达式编写函数,

声明正在编写如下函数,

function withName(a,b,c) {

}

通过声明,需要编写一个标识符,在本例中为withName

您给出的示例都是函数表达式,其中不需要编写标识符withName,因为您仍然可以使用变量xy调用此函数

var x = function withName(a,b,c) {} 

var y = function (a,b,c) {}

但是,唯一的区别是,如果您没有指定标识符,则表示您正在创建匿名函数。

您可以查看this link了解详细说明。

答案 1 :(得分:0)

在这个特殊情况下,没有区别。但一般来说,分配给变量的函数具有名称的事实使得可以从同一函数(recursion)内部调用函数。