Extending native objects and prototypes is bad. If not vile, mean and Jesuitic. // Noooooo! Array.prototype.map = function() { // stuff }; Unless it's desirable, for example for adding ECMAScript5 methods in legacy browsers. In which case we do something like: if (!Array.prototype.map) { Array.prototype.map = function() { // stuff }; } If we're paranoid enough we can even try to protect from someb