by

extend, toggleClass, equals, inArray.... functional javascript prototypes

Copy Embed Code
<iframe id="embedFrame" style="width:600px; height:300px;"
src="https://www.snip2code.com/Embed/142144/extend--toggleClass--equals--inArray----?startLine=0"></iframe>
Click on the embed code to copy it into your clipboard Width Height
Leave empty to retrieve all the content Start End
// functional additions to the Object prototype Object.prototype.extend = function() { if (arguments.length === 0) return this; for (var i = 0; i < arguments.length; i++) { for (var property in arguments[i]) { if (arguments[i].hasOwnProperty(property)) this[property] = arguments[i][property]; } } return this; }; Object.prototype.equals = function(x) { var p; for(p in this) { if (typeof(x[p]) == "undefined") return false; } for(p in this) { if (this[p]) { switch(typeof(this[p])) { case "object": if (!this[p].equals(x[p])) { return false; } break; case "function": if (typeof(x[p]) == "undefined" ||(p != "equals" && this[p].toString() != x[p].toString())) { return false; } break; default: if (this[p] != x[p]) { return false; } } } else { if (x[p]) { return false; } } } for(p in x) { if(typeof(this[p])=="undefined") { return false; } } return true; }; Array.prototype.inArray = function (value) { for (var i = 0; i < this.length; i++) { if (typeof value === "object") { // If both are objects, uses the equals function if (typeof this[i] === "object" && value.equals(this[i])) { return i; } } else if (this[i] === value) { return i; } } return false; }; function toggleClass(id, className) { var element = document.getElementById(id); var classes = element.className.split(/s+/); var length = classes.length; var found = classes.inArray(className); if (found !== false) { classes.splice(found, 1); } // The className is not found if (length === classes.length) { classes.push(className); } element.className = classes.join(" "); };
If you want to be updated about similar snippets, Sign in and follow our Channels

blog comments powered by Disqus