я сделал серию экспериментов в nodejs консоли:Может `функция a() {}` рассматриваться как сокращенное выражение `a = function a() {}`?
> 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
в приведенном выше эксперименте?
Интересно отметить, что в этом примере 'b', даже если он объявлен, он не может ссылаться на это имя, поскольку он находится в правой части знака равенства. –