27

Is there any difference between

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

and

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

in JavaScript?

1
  • Wow, i have been working javascript for YEARs and I didn't know this... CRAZY Commented Aug 26, 2009 at 11:06

3 Answers 3

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
Sign up to request clarification or add additional context in comments.

Comments

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)

2 Comments

Be careful with the comments; Several of them are incorrect.
A link may explain everything but it's always a bit nicer to have a small synopsis here too.
-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.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.