24

Is there any difference between

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

and

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

in JavaScript?

altso
  • 2,181
  • 4
  • 24
  • 40

3 Answers3

9

I know that a difference between them is that named functions work everywhere regardless you declare them, functions in variables don't.

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

works

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

doesn't work but if you call it after the declaration it works

var a=function(){..}
a();//works
gsamaras
  • 69,751
  • 39
  • 173
  • 279
mck89
  • 18,377
  • 15
  • 87
  • 103
7

This article might answer your question : JavaScript function declaration ambiguity.

Only the first one is an actual function declaration, whereas the shorthand method is just a regular variable declaration with an anonymous function assigned to it as its value.

(look at the comments, too, which might get some useful informations too)

gsamaras
  • 69,751
  • 39
  • 173
  • 279
Pascal MARTIN
  • 385,748
  • 76
  • 642
  • 654
-1

There is no difference superficially, so you can use both formats in your code.

To js interpreter it is different though.

First one is a named funciton.

Second one is an anonymous function that gets assigned to a variable.

Also, while debugging, you won't get a name of for the second function in stack trace.

gsamaras
  • 69,751
  • 39
  • 173
  • 279
Aaron Qian
  • 4,227
  • 2
  • 23
  • 27