¿Qué son los prototipos en JavaScript?
En JavaScript, los prototipos son una característica fundamental del lenguaje que permite la herencia de propiedades y métodos entre objetos. En lugar de utilizar clases como en otros lenguajes de programación, JavaScript utiliza prototipos para crear objetos y compartir funcionalidades entre ellos.
¿Cómo funcionan los prototipos?
En JavaScript, cada objeto tiene un enlace interno a otro objeto llamado «prototipo». Cuando se accede a una propiedad o método en un objeto, JavaScript busca primero en el objeto mismo y, si no lo encuentra, sigue buscando en su prototipo.
Este proceso de búsqueda continúa hasta llegar al objeto «Object.prototype», que es el prototipo base de todos los objetos en JavaScript. Si la propiedad o método no se encuentra en ningún nivel del prototipo, se considera indefinido.
Creando prototipos en JavaScript
Para crear un prototipo en JavaScript, se utiliza la función constructora. Esta función se utiliza para definir las propiedades y métodos que serán compartidos por todos los objetos creados a partir de ella.
Por ejemplo:
function Persona(nombre, edad) {
this.nombre = nombre;
this.edad = edad;
}
Persona.prototype.saludar = function() {
console.log("Hola, mi nombre es " + this.nombre);
};
En este ejemplo, la función constructora «Persona» define las propiedades «nombre» y «edad». El método «saludar» se define en el prototipo de «Persona» y será compartido por todos los objetos creados a partir de ella.
Herencia en JavaScript
La herencia en JavaScript se logra mediante la cadena de prototipos. Un objeto puede heredar propiedades y métodos de otro objeto al establecer su prototipo como el objeto del que desea heredar.
Por ejemplo:
function Estudiante(nombre, edad, carrera) {
Persona.call(this, nombre, edad);
this.carrera = carrera;
}
Estudiante.prototype = Object.create(Persona.prototype);
Estudiante.prototype.constructor = Estudiante;
Estudiante.prototype.estudiar = function() {
console.log("Estoy estudiando " + this.carrera);
};
En este ejemplo, la función constructora «Estudiante» hereda las propiedades «nombre» y «edad» de «Persona» utilizando la función «call». Luego, se establece el prototipo de «Estudiante» como el prototipo de «Persona» utilizando «Object.create». Finalmente, se define el método «estudiar» en el prototipo de «Estudiante».
Los prototipos y la herencia en JavaScript son conceptos clave para comprender el funcionamiento del lenguaje. Aunque puede resultar un poco confuso al principio, entender cómo funcionan los prototipos y cómo se logra la herencia permite aprovechar al máximo las capacidades de JavaScript.
Los prototipos permiten compartir propiedades y métodos entre objetos, lo que facilita la reutilización de código y la creación de jerarquías de objetos. La herencia en JavaScript se logra estableciendo el prototipo de un objeto como el objeto del que desea heredar, lo que permite extender las funcionalidades de un objeto existente.







3 respuestas
Due to the excellent quality of the content on this website and the fact that its administrator is actively working, it is certain to gain popularity very soon.
I loved even more than you will get done right here. The picture is nice, and your writing is stylish, but you seem to be rushing through it, and I think you should give it again soon. I’ll probably do that again and again if you protect this walk.
Mat6tube I’m just starting out with blogging, and I really admire your work. This article especially piqued my interest. I’ll bookmark your site and return for new updates regularly.
Your blog is a testament to your dedication to your craft. Your commitment to excellence is evident in every aspect of your writing. Thank you for being such a positive influence in the online community.
I do not even know how I ended up here but I thought this post was great I dont know who you are but definitely youre going to a famous blogger if you arent already Cheers
Thank you for the auspicious writeup It in fact was a amusement account it Look advanced to far added agreeable from you However how can we communicate
Great article! I really appreciate the way you explained everything so clearly – it feels like you put a lot of effort into making it useful for readers. I’ve been exploring different tools and resources myself, It’s been a game changer for me, and reading your post actually gave me even more ideas on how to apply it. Thanks for sharing such valuable insights!