«Обычные» функции против функциональных переменных в JavaScript [дубликат]

На этот вопрос уже есть ответ здесь:

var functionName = function () {} против функции functionName () {} 37 ответов

Есть ли разница между

function MyFunc() {
    // code...
}

а также

var MyFunc = function() {
    // code...
};

в JavaScript?

 Zoidberg26 авг. 2009 г., 13:06
Вау, я работал на JavaScript для лет, и я нене знаю этого ... CRAZY

Ответы на вопрос(3)

Внешне нет никакой разницы, поэтому вы можете использовать оба формата в своем коде.

Для переводчика JS это отличается, хотя.

Первый из них называется funciton.

Вторая - это анонимная функция, которая присваивается переменной.

Кроме того, во время отладки вы выигралиполучить имя для второй функции в трассировке стека.

Решение Вопроса

Эта статья может ответить на ваш вопрос:Неоднозначность объявления функции JavaScript.

Только первое является фактическим объявлением функции, тогда как сокращенный метод является просто объявлением обычной переменной с анонимной функцией, назначенной ему в качестве значения.

(посмотрите на комментарии, которые тоже могут получить полезную информацию)

 Trilarion11 июл. 2014 г., 14:20
Ссылка может объяснить все, но этоздесь всегда немного приятнее иметь небольшой обзор.
 Matthew Crumley26 авг. 2009 г., 15:06
Будьте осторожны с комментариями; Некоторые из них неверны.

что разница между ними заключается в том, что именованные функции работают везде, независимо от того, объявляете ли вы их, функции в переменных нет.

a();//works   
function a(){..}

работает

a();//error
var a=function(){..}

Безразлично»не работает, но если вы позвоните после объявления

var a=function(){..}
a();//works

Ваш ответ на вопрос