some claim the ! has better performance over () http://jsperf.com/bang-function
from http://stackoverflow.com/questions/5827290/javascript-function-leading-bang-syntax jimmy On Sep 28, 3:56 pm, "Cheney, Austin" <[email protected]> wrote: > One important note is that in the code sample from Lasse the variable > "result" will never see that it is being assigned a function. It will take > the type and value that the function returns, because the function executes > before the assignment completes. > > Thanks, > Austin Cheney, CISSP > > From: [email protected] [mailto:[email protected]] On > Behalf Of Lasse Reichstein > Sent: Wednesday, September 28, 2011 3:19 PM > To: [email protected] > Subject: Re: [JSMentors] self executing function > > On Tue, Sep 27, 2011 at 9:31 PM, Xavier MONTILLET > <[email protected]<mailto:[email protected]>> wrote: > (function(){ > //code > > })(); > > is the module pattern and is widely used. > If you assign the result to a variable, there is no problem: > > var result = (function(){ > //code > > })(); > > In that case, you don't even need the wrapping parentheses: > var result = function(){ ... }(); > works too. People add them anyway, because it makes it easier to recognize > the construct as an immediately called function literal. > > About the !, it must be kind of the same idea but I don't know exactly > the difference... > > It's the same idea: The parentheses in > (function(){...})() > are needed because a statement can't start with the keyword "function" (then > it has to be a function declaration, which is not what we want here). > Using '!' instead: > !function(){ ... }() > is just one character shorter (although I'd argue it's less readable, but > that's probably just habit). > /L > -- > To view archived discussions from the original JSMentors Mailman list: > http://www.mail-archive.com/[email protected]/ > > To search via a non-Google archive, visit > here:http://www.mail-archive.com/[email protected]/ > > To unsubscribe from this group, send email to > [email protected] -- To view archived discussions from the original JSMentors Mailman list: http://www.mail-archive.com/[email protected]/ To search via a non-Google archive, visit here: http://www.mail-archive.com/[email protected]/ To unsubscribe from this group, send email to [email protected]
