9

Possible Duplicate:
Are “(function ( ) { } ) ( )” and “(function ( ) { } ( ) )” functionally equal in JavaScript?

I'm reading the document below.

http://addyosmani.com/resources/essentialjsdesignpatterns/book/#patternity

When I looked though these examples, self-invoking of an anonymous function had three forms.

The one was

(function() {
    //do something
})();

and another was

function() {
    //do something
}();

and the other was

(function() {
    //do something
}());

What's the difference between these three forms?

Thank you for your reading!

Community
  • 1
  • 1
synthresin
  • 931
  • 1
  • 9
  • 23

2 Answers2

6

The first and last are effectively identical. The differences are a matter of style.

The second is unsafe as (depending on where it is) it could be a function declaration instead of a function expression, and you can't immediately invoke a function declaration.

Quentin
  • 914,110
  • 126
  • 1,211
  • 1,335
1

The proceeding function is not valid syntax:

function() {
    //do something
}();
Kevin Bowersox
  • 93,289
  • 19
  • 159
  • 189