aydio
aydio

Reputation: 346

JavaScript differences defining a function

I just bought the newest version of "JavaScript: The Definitive Guide" and already have a question. :D

Are the following lines semantically the same:

var square = function(n){
                 return n * n;
             };

and

function square(n){
    return n * n;
}

If yes, what are the advantages/disadvantages of using either of them?

Thanks for your help!

Upvotes: 3

Views: 162

Answers (3)

Thomas
Thomas

Reputation: 463

Check this out:

a(); // prints 'A'

function a(){

    console.log('A');

};

and this:

b(); // throws error. b is not a function

var b = function() {

    console.log('B');

};

Did you notice the difference?

Upvotes: 3

Clement Herreman
Clement Herreman

Reputation: 10536

Difference is that in the first solution, you can do that :

var square = function(n){
                 return n * n;
             };

// some code

square = function(n) { return n*n*n; }

you have reference to a function. On the other solution, the function is statically declared.

Disclaimer: need JS guru to tell me if I'm wrong =).

Upvotes: 0

Andrew Hare
Andrew Hare

Reputation: 351516

Yes, they do the exact same thing.

The main advantage of the first approach is that it gives you a reference to that function so that you could pass it to another function or attach it to an object if you need to.

Upvotes: 3

Related Questions