Question

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!

Was it helpful?

Solution

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.

OTHER TIPS

The proceeding function is not valid syntax:

function() {
    //do something
}();
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top