0% encontró este documento útil (0 votos)
82 vistas7 páginas

GUÍA 7 - POO Javascript

El documento presenta una guía para implementar patrones de programación orientados a objetos en JavaScript utilizando constructores y prototipos. Se explican los conceptos básicos de herencia prototípica y se proponen actividades como crear objetos literales, utilizar funciones constructoras para definir métodos en el prototipo, y demostrar herencia prototípica mediante la extensión de objetos existentes.

Cargado por

elgamerfriky3021
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
82 vistas7 páginas

GUÍA 7 - POO Javascript

El documento presenta una guía para implementar patrones de programación orientados a objetos en JavaScript utilizando constructores y prototipos. Se explican los conceptos básicos de herencia prototípica y se proponen actividades como crear objetos literales, utilizar funciones constructoras para definir métodos en el prototipo, y demostrar herencia prototípica mediante la extensión de objetos existentes.

Cargado por

elgamerfriky3021
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 7

GUÍA 6 – PROYECTO ITERACIONES

OBJETIVO: Comprender porque JavaScript pueden utilizar constructores y prototipos para


implementar patrones de programación orientada a objetos basados en clases.

RETO: Crear las funciones constructoras y definir los métodos en la propiedad prototype del
constructor
Modelo: Automóvil
Instanciar tres objetos y ejecutar sus métodos
Atributos: Métodos:
• Marca • informaciónVehiculo()

• Línea • revisionTecnicoMecanica(Modelo): Modelos con más de cinco


años de antigüedad deben presentar revisión técnica mecánica
• Modelo
• nivelGasolina(): generar aleatoriamente (de 1 a 100) el nivel en
• Cilindraje
que se encuentra el combustible.
• Precio
Modelo: Sedan
Sedan hereda de Automóvil
Instanciar un objeto y ejecutar sus métodos
Atributos: Métodos:
• Numero • numeroCinturonesSeguridad():Nuevo método
Pasajeros • informaciónVehiculo():Sobreescritura de método
• Tipo Caja
Modelo: Instructor
Instanciar tres objetos y ejecutar sus métodos
Atributos: Métodos:
• Nombre • informacionInstructor()
• Línea • programaFormacion(): Si el instructor es de la línea Software el
• Jornada programa es Análisis y desarrollo de software; si la línea es
hardware el programa es Administración de redes; si la línea es
cualquier otra se debe informar que no se tiene registro calificado
para esas líneas tecnológicas
Modelo: InstructorPlanta
InstructorPlanta hereda de Instructor
Instanciar un objeto y ejecutar sus métodos
Atributos: Métodos:
• Fecha Vinculación • informacionInstructor(): Sobreescritura de método
• tiempoVinculacion(): generar la información en meses.
Modelo: Restaurante
Instanciar tres objetos y ejecutar sus métodos
Atributos: Métodos:
• Plato • pedidoRestaurante()
• Cantidad • valorPedido(): calcula el precio de venta al público del pedido
solicitado.
• Precio
• descuentoPedido(): Si el cliente lleva más de 2 productos por un
valor de al menos $50,000, se da un descuento del 10%
Modelo: RestauranteDomicilio
RestauranteDomicilio hereda de Restaurante
Instanciar un objeto y ejecutar sus métodos
Atributos: Métodos:
• Tiempo Entrega • informacionRestaurante(): método nuevo
• Valor Domicilio • valorPedido(): incluye valor del domicilio; sobreescritura del
método.

CONCEPTOS: JavaScript se basa en prototipos en lugar de clases para definir la estructura y el


comportamiento de los objetos. Esta característica les proporciona una flexibilidad única y un estilo de
programación orientada a objetos diferente al de otros lenguajes que utilizan clases.

• Herencia basada en prototipos: En lugar de utilizar clases para crear objetos, JavaScript utiliza
prototipos como plantillas para la creación de objetos. Cada objeto en JavaScript tiene un
prototipo que puede ser otro objeto. Cuando se busca una propiedad o método en un objeto,
JavaScript lo buscará primero en el propio objeto y, si no lo encuentra, lo buscará en su prototipo.
Esto permite la herencia de propiedades y métodos entre objetos de una manera más flexible.
• Objetos como diccionarios: En JavaScript, los objetos pueden verse como colecciones de pares
clave-valor, donde las claves (llamadas propiedades) son cadenas de texto o símbolos y los
valores pueden ser cualquier tipo de dato. Esta flexibilidad facilita la creación dinámica de
objetos y la adición o eliminación de propiedades en tiempo de ejecución.
• Constructor de funciones: Aunque JavaScript no tiene clases en el sentido tradicional, las
funciones pueden utilizarse como constructores para crear objetos. Cuando se llama a una
función con el operador new, se crea un nuevo objeto y se establece su prototipo en la función
constructora. Esto permite crear objetos con propiedades y métodos compartidos utilizando
funciones como prototipos; es importante tener en cuenta que los métodos y propiedades
son definidos en la propiedad prototype, que reside en la función constructora del objeto.
• Herencia prototípica múltiple: JavaScript permite que un objeto tenga múltiples prototipos, lo
que se conoce como herencia prototípica múltiple. Esto permite a los objetos heredar
propiedades y métodos de varios prototipos, lo que puede ser muy útil en casos especiales. En
JavaScript, se establece un enlace entre la instancia del objeto y su prototipo (su propiedad
__proto__, la cual es derivada de la propiedad prototype sobre el constructor), y las
propiedades y métodos son encontrados recorriendo la cadena de prototipos.

Otros conceptos que debemos tener en cuenta para trabajar con objetos en JavaScript:

• Espacio de nombres (namespace): Un espacio de nombres en JavaScript es una técnica


utilizada para agrupar y organizar nombres de variables, funciones y otros identificadores
relacionados en un programa JavaScript; se define como un objeto JavaScript que actúa
como contenedor lo que ayuda a evitar colisiones de nombres con otras partes del código.
• Notación Punto (Dot Notation): es una forma de acceder a las propiedades y métodos
de un objeto utilizando un punto (.) como operador. Esta notación se utiliza para referenciar y
trabajar con miembros de un objeto de manera sencilla y legible; El nombre del objeto
(object) actúa como el espacio de nombre (namespace); al cual se debe ingresar primero
para acceder a cualquier elemento encapsulado dentro del objeto. A continuación, escribe un
punto y luego el elemento al que deseas acceder: puede ser el nombre de una simple
propiedad, un elemento de una propiedad de arreglo o una llamada a uno de los métodos
del objeto.
• Notación de Corchetes (bracket notation): es una forma alternativa de acceder a las
propiedades o métodos de un objeto utilizando corchetes [ ] en lugar de la notación de
punto (.). Esta notación es especialmente útil cuando se necesita acceder a propiedades cuyos
nombres contienen caracteres especiales, espacios en blanco o cuando el nombre de la
propiedad está contenido en una variable.
• THIS: La palabra clave this se refiere al objeto actual en el que se está escribiendo el código;
siempre asegurará que se usen los valores correctos cuando cambie el contexto de un miembro
(por ejemplo, dos diferentes instancias de objetos)

ACTIVIDADES

Para comprender mejor los fundamentos de prototipos en JavaScript, trabajaremos desde el lado
cliente; para ello necesitaremos que el editor VS Code tenga instalada la extensión Live Server
y configuramos una plantilla index.html para contener el código JavaScript.
1. OBJETO LITERAL

Literalmente hemos escrito el contenido del objeto tal como lo fuimos creando.

a. Definir un objeto aprendiz1

b. Cambiar datos de atributos del objeto

c. Adicionar atributos al objeto


d. Cambiar métodos del objeto

e. Adicionar atributos al objeto, mediante variables; adicionar métodos al


objeto

2. OBJETO PROTOTIPO USANDO FUNCION CONSTRUCTORA

Los objetos creados a través de una función constructora utilizan un patrón de diseño
donde los métodos se definen en el prototipo, pero las propiedades de los datos se
definen en el constructor. Esto se debe a que los métodos suelen ser los mismos para cada
objeto que creamos, mientras que a menudo queremos que cada objeto tenga su propio valor
para sus propiedades de datos.

a. Definimos la función constructora Aprendiz


b. Forma 1: Método Object.assign()

Definimos el objeto aprendizPrototype que contiene las funciones saludar,


despedida y estudiar. El método Object.assign() copia todas las propiedades
enumerables de uno o más objetos fuente a un objeto destino.

c. Forma 2: Utilizar prototipo del objeto

En JavaScript, todas las funciones tienen una propiedad denominada prototype. Cuando
se llama a una función como constructor, esta propiedad se establece como el
prototipo del objeto recién construido (por convención, en la propiedad denominada
(__proto__); entonces, si configuramos la propiedad prototype, podemos asegurarnos de
que todos los objetos creados con ese constructor reciban ese prototipo:

3. HERENCIA PROTOTIPICA
La herencia prototípica es un concepto fundamental en JavaScript que se refiere a la forma en
que los objetos heredan propiedades y métodos de otros objetos en el lenguaje. A diferencia de
otros lenguajes de programación que utilizan el concepto de clases para definir la estructura de
los objetos, JavaScript utiliza prototipos para la herencia.

Aquí hay algunos puntos clave sobre la herencia prototípica en JavaScript:

• Prototipo: Cada objeto en JavaScript tiene un prototipo, que es otro objeto. Un objeto
puede heredar propiedades y métodos de su prototipo. Si intentas acceder a una
propiedad o método en un objeto y este no lo tiene, JavaScript buscará en su prototipo
y en la cadena de prototipos hasta encontrar la propiedad o método o llegar al objeto
base (Object.prototype).
• Objeto base: En JavaScript, el objeto base de todos los objetos es Object.prototype.
Esto significa que todos los objetos heredan propiedades y métodos de
Object.prototype. Por ejemplo, todos los objetos en JavaScript tienen métodos como
toString() y valueOf() gracias a esta herencia.
• Herencia de propiedades y métodos: Cuando accedes a una propiedad o método en
un objeto, JavaScript primero busca en el propio objeto. Si no encuentra la propiedad o
método, busca en su prototipo y así sucesivamente a lo largo de la cadena de prototipos.
Esto permite compartir propiedades y métodos entre objetos sin duplicar código.
• Herencia múltiple: JavaScript permite que un objeto tenga múltiples prototipos. Esto se
conoce como herencia prototípica múltiple. Si un objeto no encuentra una propiedad o
método en su prototipo principal, puede buscar en otros prototipos que estén en su
cadena de prototipos.

La herencia prototípica es una parte fundamental de cómo funciona JavaScript y es una de las
razones por las que el lenguaje es tan flexible y poderoso en la creación y manipulación de
objetos. Permite la creación de estructuras de objetos complejas y la reutilización de código de
manera efectiva.

a. Definimos una función constructora AprendizEtapaPractica que hereda del prototipo


Aprendiz.

También podría gustarte