Función Prototype
En JavaScript se pueden añadir propiedades además de métodos a una clase gracias a funciones constructoras. Entre ellas existe arguments, arity, caller, constructor, prototype, name, entre otras, pero por ahora hablaremos de Prototype.
Esta propiedad es del tipo object y gracias a esto es heredada por todos los objetos, de esta manera podremos darles nuevos métodos y/o propiedades a cualquier objeto.
Ejemplo paso a paso con prototype
Veamos cómo hacer que esta propiedad funcione:
Un ejemplo con el que vamos a trabajar es una función vacía a la cual después le agregaremos la propiedad Prototype
1 |
function sumar() { } |
Agregar propiedades usando prototype
Mediante la función prototype nos será posible convertir la función anterior en un constructor, con ello le agregaremos las dos primeras propiedades que contendrá que serán un par de variables, estas serán los valores por defecto de las dos propiedades que contendrá nuestra función.
Primero declaramos las variables:
1 2 |
a = 0; b = 0; |
y después usamos la propiedad prototype para asignarle estas variables a nuestra función, además separado por un punto tenemos que darle nombres a dichas propiedades, en este caso les llamaremos v1 y v2:
1 2 3 |
sumar.prototype.v1 = a; sumar.prototype.v2 = b; |
De este modo al usar nuestra función como un constructor, se obtendrán las anteriores variables declaradas en el objeto:
1 |
numeros_a_sumar = new sumar(); |
De este modo numeros_a_sumar tendrá las variables v1 y v2 con un valor inicial de 0.
De este modo podría usarse para guardar el par de variables mediante un formulario y así sumarlas por ejemplo en nuestra página web.
Agregar nuevos métodos usando prototype
Para asignar un nuevo método con prototype se hace igual que al asignar variables, primero hay que declararla:
1 2 3 4 |
function sumarDosNumeros{ resultado = this.v1 + this.v2; return resultado; } |
Ahora que tenemos la función la agregamos a la clase sumar:
1 2 |
sumar: sumar.prototype.sumarDosNumeros = sumarDosNumeros |
ahora dentro de nuestra clase tenemos un método llamado sumarDosNumeros que suma a partir de las propiedades v1 y v2 , a estas se les pondrá el valor de los números a sumar.