Siempre me he preguntado por qué Javascript tiene el objeto matemático global en lugar de dar a los números sus propios métodos. ¿Hay una buena razón para eso?Extendiendo el prototipo Number en javascript y el objeto Math?
También hay algún inconveniente (aparte de la eficiencia) a hacer algo como esto ?:
Number.prototype.round = function(){
return Math.round(this);
};
Sólo para dejar en claro, entiendo que las constantes como π necesitan en alguna parte y funciones que son aplicadas en más de una número como min/max. La pregunta fue principalmente en relación con los métodos que sólo afectan un solo número, tal como redonda, ABS, pecado, prisionero de guerra, etc.
Usted puede extender casi cualquier cosa, pero el objeto Array. Es el objeto Array donde extenderse es molesto porque no se puede hacer un simpel para el ciclo de entrada (sí, sé que se puede usar un for() pero eso se ve tan feo. –
@Pim Jager: no se debe usando para ... en matrices de todos modos - eso es para objetos. Por eso el * real * no-no se extiende Object.prototype ... – Shog9
Puede extender si su versión de javascript admite Object.defineProperty. Existe la opción enumerable : falso – dresende