Подтвердить что ты не робот

"Обычные" функции и функциональные переменные в JavaScript

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

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

и

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

в JavaScript?

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

работы

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

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

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

Ответ 3

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

В js-интерпретаторе это все равно.

Первый - это именованный funciton.

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

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