Estoy leyendo de Douglas Crockford JavaScript: The Good Parts, y estoy un poco confundido acerca de algo. En el capítulo 4, en Tipos de aumento, crea un atajo para agregar un método.Aumento de tipos en JavaScript
Function.prototype.method = function (name, func) {
this.prototype[name] = func;
return this;
};
Dice:
Al aumentar Function.prototype con un método 'método', ya no tenemos que escribir el nombre de la propiedad prototipo. Ese poco de fealdad ahora se puede ocultar.
A continuación, usa esto para agregar un método 'entero' al prototipo de número con esto.
Number.method('integer', function() {
return Math[this < 0 ? 'ceil' : 'floor'](this);
});
document.writeln((-10/3).integer()); // -3
estoy un poco confundido aquí ... porque hemos añadido un método 'método' a la función prototipo, no es el prototipo de Número. Y que yo sepa, el objeto Number no hereda del prototipo Function (aunque tal vez estoy equivocado). Veo que esto funciona, pero no entiendo por qué los objetos Number pueden hacer uso de este método 'método' para agregar ... métodos.
Esta es una buena pregunta.Me tomó un tiempo entender el código, pero finalmente lo conseguí. – Paul
gracias a todos por las buenas respuestas. eso tiene sentido ahora. –
Un seguimiento de mi pregunta es cuál es el punto del primer bit de código. Supongo que no entiendo su cita. ¿Cómo es este método de 'método' más eficiente o mejor que simplemente agregar directamente el método al prototipo de Número directamente? De esta manera: Number.prototype.integer = function() { return Math [this <0? 'ceil': 'piso'] (esto); } –