Si ayer veíamos que podíamos crear propiedades dinámicas en Javascript hoy veremos como crear métodos dinámicamente en Javascript.
Y es que el procedimiento es el mismo para este caso y volveremos a apoyarnos en la sentencia prototype para poder crear métodos dinámicamente.
Lo primero definir una clase… volvemos a utilizar nuestra clase rectángulo…
function rectangulo(base,altura){
this.base = base;
this.altura = altura;
}
E instanciamos dos elementos de la clase rectángulo:
r1 = new rectangulo(2,4);
r2 = new rectangulo(4,8);
En este momento solo podemos acceder a las propiedades base y altura. Así que pasamos a crear un método calcularArea dinámicamente.
rectangulo.prototype.calcularArea = function() { return this.base*this.altura; };
Vemos que hemos utilizado la sentencia prototype, con lo cual conseguimos que se defina dinámicamente el método para todas las instancias de rectángulo. Si no utilizasemos prototype se definiría el método dinámicamente solo para la instancia a la que se lo aplicásemos.
Ahora ya podemos ejecutar el método sobre las dos instancias del objeto:
document.write("Un rectangulo de " + r1.base + "x" + r1.altura + " tiene un área de " + r1.calcularArea() + "
");
document.write("Un rectangulo de " + r2.base + "x" + r2.altura + " tiene un área de " + r2.calcularArea());