Created
April 28, 2011 14:18
-
-
Save rwaldron/946432 to your computer and use it in GitHub Desktop.
Running collection of IIFE Patterns
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function( window, document, undefined ){ | |
})( this, this.document ); | |
(function( global, undefined ){ | |
})( this ); | |
// miketaylr | |
(function( win, doc ){ | |
// SCREW U UNDEFINED | |
})( window, document ); | |
// ralphholzmann | |
(function poll() { | |
/* Lots of stuffs here */ | |
if ( cssIsReady ) { | |
cssCallback(); | |
} else { | |
setTimeout( poll, 50 ); | |
} | |
})(); | |
// mennovanslooten | |
new function() { | |
// No arguments though | |
} | |
// addyosmani | |
(function(){ | |
arguments.callee(); | |
}()); | |
(function(){ | |
/* do stuff */ | |
}()); | |
// rmurphey | |
!function(){ | |
// Note that I don't like this one, but it does exist :) | |
}(); |
new function() {
// No arguments though
}
Including just because it technically counts, even if ralph's kicks its ass a little ; )
(function(){
arguments.callee();
}());
and I guess this is one of the more common immediately invoked variations I use:
(function(){
/* do stuff */
}());
No funky syntax highlighting. I'm commenting from a phone and Im lazy.
!function(){ /* ... */ }()
Note that I don't like this one, but it does exist :)
Here are some more:
null,function(){ /* ... */ }()
this,function(){ /* ... */ }()
666,function(){ /* ... */ }()
'☹',function(){ /* ... */ }()
-function(){ /* ... */ }()
+function(){ /* ... */ }()
|function(){ /* ... */ }()
^function(){ /* ... */ }()
>>>function(){ /* ... */ }()
~function(){ /* ... */ }()
-([[{}||{}]])>>>function(){ /* ... */ }()
None of them should be used though.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I enjoy recursive IIFEs, we use them to poll for css callbacks in yepnope.js
Not sure if this is technically an IIFE because of the "poll" identifier, but it beats using
arguments.callee
.<3z