Los prototipos es algo que… os trae de cabeza. Como lo leéis. Lo sé, es algo raro de entender entre la programación orientada a objetos, las clases, los objetos que hemos visto hasta ahora…
Básicamente, podríamos decir que es un modo que nos permite que los objetos de Javascript hereden características entre sí.
En esta lección vamos a aprender a diferenciar un objeto y un prototipo y a ver cómo añadir y borrar propiedades y métodos a un objeto y a un prototipo.
Por supuesto, se puede profundizar muchísimo más en el trabajo con prototipos, pero estoy segura de que con este vídeo te quedarán las cosas muuuucho más claras sobre ellos 🙂
¡Consulta en la pestaña Materiales el código fuente trabajado en la lección!
¿No te ha quedado claro? ¿Quieres aportar tu punto de vista? ¡Deja tu comentario!
¡Ups! ¡Este contenido está restringido a codelovers! Inicia sesión o, si aún no eres miembro de Didacticode, regístrate!
Hola, queria hacerte 2 preguntas.
La primera es¿ cuando creas una nueva propiedad o metodo en un prototipo en que orden se almacena dentro del obtejo?
Y la segunda es ¿hasta que punto es practico crear las propiedades con prototipo?
Me refiero que cuando creas un objeto deberias tener claro que propiedades vas a utilizar no.
Gracias.
¡Buenos días, Roberto!
Siento responderte tan tarde, se me había pasado responderte.
La primera pregunta, tal y como te comenta Manolo, es así: el orden en que tú los creas es el orden en el que se almacenan.
La segunda pregunta es bastante lógica: ¿para qué hacer un prototipo si puedes crear un objeto normal? No sé si has trabajado con otros lenguajes de programación (Java, por ejemplo) en los que existe la herencia, las clases abstractas…. Esto sería algo parecido: pongamos que tú tienes un tipo de objeto, el que sea, que tiene tres atributos, pero en otra parte del programa necesitas trabajar con un cuarto atributo. Puedes usar siempre cuatro y en una parte del programa no utilizar ese cuarto atributo, o bien incluirlo solamente allí donde lo necesitas. De esta manera estarías creando objetos “a medida” en las partes del programa que necesitaras. Quizá no es lo habitual, pero al menos tienes la opción de hacerlo allí donde quieres. ¿Me he explicado?
Te has explicado muy bien, te agradezco ya que no entendía el concepto de prototipo y con el video me quedo mas claro y con la pregunta de Roberto y tu respuesta mucho más claro quedo todo.
Muy buenas. Entonces, por saber si me ha quedado claro:
Por ejemplo, tienes una clase Persona que empleas en varios módulos del programa, y en uno de ellos te interesa añadir un nuevo atributo (color de pelo). En ese módulo empleo el prototipo para añadir dicho atributo. ¿Esa adición se limita a ese módulo? Pensaba que se añadía a la clase Persona en general, por lo que afectaría también a otros módulos.
¡Eso es, José Miguel! Piensa que en un programa pequeño no necesitas hacer este tipo de cosas, pero habrá programas en los que haya decenas de partes y quizá en unas necesites la clase tal cual y en otra trabajar con atributos extras que al resto de partes del programa no le interesan. Así que la solución puede ser trabajar de esta manera solo en el módulo que necesites 😉
Lo siento, debes estar conectado para publicar un comentario.
Resumen de privacidad
Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.
Hola, queria hacerte 2 preguntas.
La primera es¿ cuando creas una nueva propiedad o metodo en un prototipo en que orden se almacena dentro del obtejo?
Y la segunda es ¿hasta que punto es practico crear las propiedades con prototipo?
Me refiero que cuando creas un objeto deberias tener claro que propiedades vas a utilizar no.
Gracias.
Hola,
Entiendo que el orden es el mismo en el que se crean o añaden al objeto. La forma de verlo es con un bucle for in
Efectivamente, Manolo, así es
¡Buenos días, Roberto!
Siento responderte tan tarde, se me había pasado responderte.
La primera pregunta, tal y como te comenta Manolo, es así: el orden en que tú los creas es el orden en el que se almacenan.
La segunda pregunta es bastante lógica: ¿para qué hacer un prototipo si puedes crear un objeto normal? No sé si has trabajado con otros lenguajes de programación (Java, por ejemplo) en los que existe la herencia, las clases abstractas…. Esto sería algo parecido: pongamos que tú tienes un tipo de objeto, el que sea, que tiene tres atributos, pero en otra parte del programa necesitas trabajar con un cuarto atributo. Puedes usar siempre cuatro y en una parte del programa no utilizar ese cuarto atributo, o bien incluirlo solamente allí donde lo necesitas. De esta manera estarías creando objetos “a medida” en las partes del programa que necesitaras. Quizá no es lo habitual, pero al menos tienes la opción de hacerlo allí donde quieres. ¿Me he explicado?
Te has explicado muy bien, te agradezco ya que no entendía el concepto de prototipo y con el video me quedo mas claro y con la pregunta de Roberto y tu respuesta mucho más claro quedo todo.
¡Me alegro mucho, Sergio!
Muy buenas. Entonces, por saber si me ha quedado claro:
Por ejemplo, tienes una clase Persona que empleas en varios módulos del programa, y en uno de ellos te interesa añadir un nuevo atributo (color de pelo). En ese módulo empleo el prototipo para añadir dicho atributo. ¿Esa adición se limita a ese módulo? Pensaba que se añadía a la clase Persona en general, por lo que afectaría también a otros módulos.
Un saludo, me encanta tu contenido.
¡Eso es, José Miguel! Piensa que en un programa pequeño no necesitas hacer este tipo de cosas, pero habrá programas en los que haya decenas de partes y quizá en unas necesites la clase tal cual y en otra trabajar con atributos extras que al resto de partes del programa no le interesan. Así que la solución puede ser trabajar de esta manera solo en el módulo que necesites 😉