Función Prototype

function.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. 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

Agregando propiedades

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:

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:

De este modo al usar nuestra función como un constructor, se obtendrán las anteriores variables declaradas en el objeto:

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.

Agregando nuevos métodos

Para asignar un nuevo método con prototype se hace igual que al asignar variables, primero hay que declararla:

Ahora que tenemos la función la agregamos a la clase sumar:

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.

Aquí el ejemplo 😀 (GitHub)

Te quedo alguna duda? Aquí mas información!

Aprendeaprogramar.com

 

aprende-web.net

About YOSAFAT SANCHEZ LEON

Estudiante de ingeniería en computación, amante de los videojuegos y la tecnología. Matemático por pasión y computólogo de corazón.