Sou um programador bastante experiente nos domínios .NET e Java e comecei a ler sobre JavaScript. Comprei o livro "The Good Parts", de Douglas Crockford, e sou imediatamente incomodado por algumas coisas.
Um é modificar os tipos fundamentais sem necessidade:
if (typeof Object.create !== 'function') {
Object.create = function (o) { //Really... 'o'? For a parameter you're only using twice?
function F() {}
F.prototype = o;
return new F();
};
}
newObject = Object.create(oldObject);
Obviamente, criar uma função com esse objetivo é útil e economiza tempo, mas POR QUE NA TERRA ele recomenda a criação no Object? Três respirações atrás, ele defendeu que os globais são maus e, em seguida, passou a consertar Object. Ele até testa se ele já existe e apenas assume que, se alguma outra biblioteca fez isso por ele, a implementação é a mesma.
Existe algum motivo para não criar isso no equivalente JS de um espaço para nome? ie
MY_UNIQUE_UTIL_LIBRARY.create = function(obj){...}; //The name would be shorter in reality.
Não me interpretem mal, acho que a aplicação de patches de macaco é útil, mas é algo que você faz quando há um benefício inerente. Eu não vejo um aqui? Existe um?