Ich bin ein ziemlich erfahrener Programmierer in den Bereichen .NET und Java und habe angefangen, mich mit JavaScript zu beschäftigen. Ich habe Douglas Crockfords "The Good Parts" -Buch gekauft und bin sofort von ein paar Dingen abgeschreckt.
Eine besteht darin, die grundlegenden Typen ohne Notwendigkeit zu modifizieren:
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);
Natürlich ist das Erstellen einer Funktion mit diesem Zweck nützlich und spart Zeit, aber WARUM AUF ERDE empfiehlt er, sie auf Objekt zu erstellen? Vor drei Atemzügen trat er dafür ein, dass Globale böse sind, und ging dann zum Affen-Patch-Objekt über. Er testet sogar, ob es bereits existiert, und geht nur davon aus, dass die Implementierung dieselbe ist, wenn eine andere Bibliothek dies für ihn getan hat.
Gibt es einen Grund, dies nicht im JS-Äquivalent eines Namespace zu erstellen? dh
MY_UNIQUE_UTIL_LIBRARY.create = function(obj){...}; //The name would be shorter in reality.
Versteh mich nicht falsch, ich denke, das Patchen von Affen ist nützlich, aber es ist etwas, was du tust, wenn es einen inhärenten Vorteil gibt. Ich sehe hier keinen? Ist dort eines?