В Javascript, что является мотивацией или преимуществом использования var foo = function foo (i) {...}? - PullRequest
2 голосов
/ 04 августа 2010

Я вижу, что в ответе

В Javascript зачем писать "var QueryStringToHash = function QueryStringToHash (query) {...}"?

, который делает что-то вроде

var foo = function foo(param) {
  ...
}

в данном конкретном случае, почему вместо простого

function foo(param) {
  ...
}

?В чем преимущество или мотивация этого?

1 Ответ

0 голосов
/ 07 мая 2012

Короче, если вы возьмете следующий код, в первом примере будет создана функция с именем foo, во втором примере будет создана анонимная функция и назначена переменная bar.Помимо стиля, основное отличие состоит в том, что foo может вызываться в коде до его определения (так как это имя функции);в противном случае bar является неопределенной переменной до получения назначения, поэтому ее нельзя использовать раньше.

var foo_result = foo(123); // ok
function foo(param) { /* ... */ }

var bar_result = bar(123); // error: undefined is not a function
var bar = function(param) { /* ... */ }
var bar_result = bar(123); // ok

Я бы порекомендовал вам прочитать предложение @ Pekka.

...