Created
February 26, 2010 17:16
-
-
Save paulirish/315916 to your computer and use it in GitHub Desktop.
This file contains 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
// everyone's new favorite closure pattern: | |
(function(window,document,undefined){ ... })(this,this.document); | |
// when minified: | |
(function(w,d,u){ ... })(this,this.document); | |
// which means all uses of window/document/undefined inside the closure | |
// will be single-lettered, so big gains in minification. | |
// it also will speed up scope chain traversal a tiny tiny little bit. | |
// additionally it protects against the case where someone does `undefined = true` | |
// tech details: | |
(function(){ })() // is a self executing anonymous function | |
// and when we | |
(function(myname){ })('paul') // we're just bypassing a var declaration at the top | |
// and then in this case, `this` is always the global object when in global scope so | |
// we can safely use it. | |
// and a horribley awesome idea. duck punch to switch up the args passed in on all ready functions | |
(function(oReady){ | |
$.fn.ready = function(fn){ | |
return oReady.call(this, function(){ fn.call(this, $, window, document); }); | |
}; | |
})($.fn.ready); | |
// which enables | |
$(function($,window,document,undefined){ alert(document) }) | |
| |
// temp01 ftw. thx! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
and it would be really weird if we could do true=false, but it wouldn't be so ugly then... :)
and I found this discussion about !0 and !1, http://groups.google.com/group/closure-compiler-discuss/browse_thread/thread/90bcf1eeeb7589d1, seems like it's slower... I also benchmarked it, and it seems slower for ~4.73%