Soy un programador bastante experimentado en los dominios .NET y Java, y he comenzado a leer sobre JavaScript. Compré el libro "The Good Parts" de Douglas Crockford, y algunas cosas me desaniman de inmediato.
Uno está modificando los tipos fundamentales sin necesidad:
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, crear una función con este propósito es útil y ahorra tiempo, pero ¿POR QUÉ EN LA TIERRA está recomendando crearla en Object? Hace tres respiraciones, propuso que los globals son malvados, y luego procedió a mono parchear Objeto. Incluso prueba si ya existe, y simplemente asume que si alguna otra biblioteca lo hizo por él, la implementación es la misma.
¿Hay alguna razón para no crear esto en el equivalente JS de un espacio de nombres? es decir
MY_UNIQUE_UTIL_LIBRARY.create = function(obj){...}; //The name would be shorter in reality.
No me malinterpreten, creo que el parche de mono es útil, pero es algo que haces cuando hay un beneficio inherente. ¿No veo uno aquí? ¿Hay uno?