Ich habe mich immer gefragt, warum Javascript das globale Math-Objekt hat, anstatt Zahlen ihre eigenen Methoden zu geben. Gibt es einen guten Grund dafür?Erweitern Sie Number.prototype in Javascript und das Math-Objekt?
Auch gibt es irgendwelche Nachteile (außer Effizienz), so etwas zu tun ?:
Number.prototype.round = function(){
return Math.round(this);
};
Nur klar zu machen, ich verstehe, dass Konstanten wie π müssen irgendwo und Funktionen, die auf mehr als einem angewendet werden Nummer wie min/max. Die Frage bezog sich hauptsächlich auf Methoden, die nur eine einzige Zahl betreffen, wie rund, abs, sin, pow, usw.
tun. Es ist das Array-Objekt, wo das Erweitern nervig ist, weil man dann kein Simple für..in der Schleife machen kann (ja, ich weiß, dass man for for verwenden kann), aber das sieht einfach hässlich aus. –
@Pim Jager: Das sollte nicht sein die Verwendung von for ... in für Arrays sowieso - das ist für Objekte gedacht.Das ist der Grund, warum die * real * no-no erweitert Object.prototype ... – Shog9
Sie können erweitern, wenn Ihre Javascript-Version Object.defineProperty unterstützt.Es gibt die Option aufzählbar : falsch – dresende