¿Qué es un prototipo en JavaScript?

¿Qué es un prototipo en JavaScript?

JavaScript es un lenguaje dinámico y basado en prototipos, por lo tanto, los prototipos son uno de los conceptos más importantes de JavaScript. Primero discutamos por qué necesitamos prototipos.

¿Por qué necesitamos prototipos??

Como se mencionó anteriormente, JavaScript es un lenguaje dinámico que significa que podemos agregar propiedades a un objeto en cualquier momento que deseemos. Pasemos por un ejemplo para explicar esto:

function Player ()
este.nombre = 'peligro';
este.club = 'Chelsea';

Var Player1 = New Player ();
Jugador 1.edad = 30;
alerta (jugador1.edad);
var jugador2 = nuevo jugador ();
alerta (jugador2.edad);

En este ejemplo, le dimos otra propiedad al jugador de objetos. Sin embargo, el primer objeto i-e jugador1 tendrá propiedad de edad, pero no el segundo objeto i-e jugador2. La razón de esto es que la propiedad de edad solo se define para el objeto jugador1.

Podemos ver que el objeto Player2 muestra indefinido en la siguiente salida del ejemplo anterior:

Ahora que sabemos qué problema nos enfrentamos, surge la pregunta: ¿cuál es la solución?? La solución a este problema es "prototipo".

Solución

Los prototipos son una característica incorporada de JavaScript. Cada vez que crea una función de JavaScript, JavaScript agrega automáticamente un prototipo a esa función. Podemos decir que un prototipo es un objeto que le permite agregar nuevas propiedades a un objeto existente. En resumen, los prototipos contienen una clase base de todos los objetos, ayudándonos a lograr la herencia.

Podemos unir propiedades adicionales al objeto prototipo que luego se compartirá en todas las instancias.

Ahora usaremos la propiedad prototipo en el ejemplo anterior para resolver el problema de compartir la propiedad de edad a todos los objetos I-E Player1 y Player2.

function Player ()
este.nombre = 'peligro';
este.club = 'Chelsea';

Jugador.prototipo.edad = 30;
Var Player1 = New Player ();
alerta (jugador1.edad);
var jugador2 = nuevo jugador ();
alerta (jugador2.edad);

Veremos que la edad de ambos jugadores tendrá 30 años ahora. La salida se muestra a continuación:

En pocas palabras, la propiedad prototipo de JavaScript nos ayuda a agregar nuevas propiedades a los constructores de objetos como se muestra en el ejemplo anterior.

Propiedad prototipo de un objeto

Cada objeto que se inicia utilizando la sintaxis literal o iniciado utilizando la sintaxis del constructor usando la nueva palabra clave, incluye la propiedad __proto__. Esto apuntará al objeto prototipo que creó este objeto.

Si desea ver la propiedad prototipo de un objeto, podemos verla en la herramienta de desarrollador de depuración. En el siguiente ejemplo, lo implementaremos y lo veremos en la ventana de la consola.

Ejemplo

function Player ()
este.nombre = 'peligro';
este.club = 'Chelsea';

var jugadorObject = new Player ();
// Ventana de consola
consola.Log (jugador.prototipo);
consola.log (jugadorObject.prototipo);
consola.log (jugadorObject.__proto__);
consola.log (typeOf Player);
consola.registro();

En este ejemplo, podemos ver que se accede a la propiedad del prototipo de función utilizando el nombre de la función que es reproductor.prototipo.

También podemos ver en este ejemplo que la propiedad prototipo no está expuesta al objeto, solo podemos acceder a él usando el "__proto__".

Prototipo de objeto

En el ejemplo anterior, vimos que la propiedad prototipo de objeto no está definida, lo que significa que es invisible. Podemos usar el objeto.GetPrototypeOf (OBJ) Método en lugar del que utilizamos i-e "__proto__". Por esto no estará indefinido y podremos acceder al objeto prototipo.

function Player ()
este.nombre = 'peligro';
este.club = 'Chelsea';

var jugadorObject = new Player ();
Jugador.prototipo.seleccionado = function ()
alerta ("seleccionado para el equipo de hoy");

Var Player1 = New Player ();
var cheCkingproto = objeto.GetPrototypeOf (Player1);
// esto devolverá el objeto prototipo de jugador1
alerta (comprobarproto.constructor);
// Esto devolverá la función Player1 que se selecciona

Conclusión

En este artículo discutimos principalmente el concepto básico de prototipos en JavaScript. Cavamos un poco más y discutimos lo que es un prototipo en JavaScript. También discutimos un problema y dimos la solución utilizando el prototipo. Además de esto, discutimos encontrar propiedades y métodos de objetos en JavaScript utilizando prototipos. Todo esto se demostró con la ayuda de ejemplos para desarrollar una mejor comprensión del concepto.