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
| // From @jeresig | |
| // http://ejohn.org/apps/learn/#15 | |
| var ninja = { | |
| yell: function(n){ | |
| return n > 0 ? arguments.callee(n-1) + "a" : "hiy"; | |
| } | |
| }; | |
| assert( ninja.yell(4) == "hiyaaaa", "arguments.callee is the function itself." ); |
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
| // From @jeresig | |
| // http://ejohn.org/apps/learn/#2 | |
| // The .bind method from Prototype.js | |
| Function.prototype.bind = function(){ | |
| var fn = this, args = Array.prototype.slice.call(arguments), object = args.shift(); | |
| return function(){ | |
| return fn.apply(object, | |
| args.concat(Array.prototype.slice.call(arguments))); | |
| }; | |
| }; |
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
| // from http://twitter.com/javascripts/widgets/widget.js | |
| if(!Array.forEach){Array.prototype.forEach=function(D,E){var C=E||window;for(var B=0,A=this.length;B<A;++B){D.call(C,this[B],B,this)}}; |
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
| // from http://twitter.com/javascripts/widgets/widget.js | |
| if(!"console" in window){window.console={log:function(){}}} |
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
| var each = [].forEach || function (fn) { | |
| var len = this.length || 0, that = arguments[1]; | |
| if (typeof fn == 'function') { | |
| for (var i = 0; i < len; i++) { | |
| fn.call(that, this[i], i, this); | |
| } | |
| } | |
| }; |
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
| // 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. |
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
| // Check to make sure indexOf is implemented (!!IE6). | |
| if (!Array.indexOf) { | |
| Array.prototype.indexOf = function(elem) { | |
| var i=0, | |
| length=this.length; | |
| for (; i < length; i++) { | |
| if (this[i] === elem ) { | |
| return i; | |
| } | |
| } |
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 isDate(str) { | |
| return (Object.prototype.toString.call(new Date(str)) === "[object Date]"); | |
| } |
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
| var scrollTop = Math.max(doc.documentElement.scrollTop, doc.body.scrollTop); |
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
| // From @codepo8 | |
| // http://www.smashingmagazine.com/2010/04/20/seven-javascript-things-i-wish-i-knew-much-earlier-in-my-career/ | |
| // Take the list of class attributes on an element and add new class. | |
| function addclass(elm,newclass){ | |
| var classes = elm.className.split(' '); | |
| classes.push(newclass); | |
| elm.className = classes.join(' '); | |
| } |