JavaScript es un lenguaje orientado a objetos basado en prototipos. Esto significa que los objetos tienen una relación de prototipo entre ellos, en lugar de tener una relación de clase como en lenguajes como Java o C#.
Un prototipo es un objeto del cual otros objetos heredan propiedades. Cada objeto en JavaScript tiene una propiedad especial llamada "prototype", que apunta a otro objeto del cual hereda propiedades. Si un objeto no tiene una propiedad específica, JavaScript busca en su prototipo, y así sucesivamente hasta encontrar la propiedad o llegar al objeto base Object.prototype.
Por ejemplo, podemos crear un objeto "Animal" como prototipo para todos los animales:
functionAnimal(){}// Es importante que las clases empiecen con máyusculas Animal.prototype.esVivo=true;// Y a su prototype le agregamos la propiedad de "esVivo"
Luego, podemos crear un objeto "Perro" que herede de "Animal":
functionPerro(){}// Esta es la manera de hacer que un objeto "Herede" de otroPerro.prototype=Object.create(Animals.prototype);
Ahora, cada objeto "Perro" tendrá acceso a la propiedad "esVivo" heredada del prototipo "Animals":
Además de crear prototipos y heredar de ellos, es posible editar los prototipos de objetos existentes en JavaScript. Por ejemplo, podemos agregar un método al prototipo de Array para calcular la suma de sus elementos:
Array.prototype.suma=function(){returnthis.reduce((a, b)=> a + b);}const numeros =[1,2,3,4,5];console.log(numeros.suma());// Output: 15
Otro ejemplo, podemos agregar un método al prototipo de String para convertir una cadena a mayúsculas:
String.prototype.mayusculas=function(){returnthis.toUpperCase();}const nombre ="Juan";console.log(nombre.mayusculas());// Output: "JUAN"
Es importante tener en cuenta que editar los prototipos de objetos existentes puede tener efectos secundarios no deseados y debe ser utilizado con precaución. Es recomendable crear clases o objetos personalizados en lugar de editar los prototipos existentes.
.
Los prototipos en JavaScript son una característica fundamental del lenguaje que permite la herencia y la reutilización de código de manera efectiva. A diferencia de otros lenguajes de programación orientados a objetos, en JavaScript no hay clases explícitas, en su lugar, utiliza prototipos para definir objetos y crear herencia.
.
En esencia, cada objeto en JavaScript tiene un prototipo del cual hereda propiedades y métodos. Los prototipos son objetos que contienen un conjunto de propiedades y métodos que están disponibles para los objetos que los heredan.
.
Por ejemplo:
let persona ={nombre:"Luis",apellido:"Castro",edad:29};
En este caso, el objeto persona tiene un prototipo que es el objeto Object.prototype, que proporciona una serie de propiedades y métodos predeterminados. Por ejemplo, el método toString() se puede utilizar para convertir un objeto en una cadena de caracteres.
.
Los prototipos también permiten la creación de objetos personalizados que heredan propiedades y métodos de otros objetos. Por ejemplo:
let empleado ={puesto:"Desarrollador",salario:50000};Object.setPrototypeOf(empleado, persona);
En este caso, el objeto empleado se crea con un prototipo que es el objeto persona. Esto significa que el objeto empleado hereda todas las propiedades y métodos de persona. Por lo tanto, podemos acceder a la propiedad nombre de persona desde el objeto empleado de la siguiente manera: