我在nodejs控制台中做了一系列实验:
> function a(){}
undefined
> a
[Function: a]
> a.name
'a'
> b = function(){}
[Function] // see, the name is empty
> b.name
'' // further proof
> b = function b(){}
[Function: b]
> b.name
'b' // now b behaves just like it's defined
// by "function b(){}"
根据我的测试结果,function a() {}
可以作为a = function a() {}
的简写。这就像V8内部的引擎一样吗?上述实验中a
和b
之间是否存在差异?
答案 0 :(得分:-2)
基本上你在a
中所做的只是声明函数,而对于b
你声明函数并在同一行上再次定义它b
。为了证明这一点,您可以尝试以下内容:
a = function b(){}
a.name // results in b
所以你可以避免声明和分配,并像使用a
一样简单地声明函数。要回答你的问题,第二种形式是编写第一种形式的更长,不必要的方式。