Autor Tema: Herencia JavaScript Jerarquía de clases: cadena de prototipos Ejercicio CU01149E  (Leído 2514 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola nuevamente.

Citar
EJERCICIO
Crea un esquema de herencia en JavaScript que refleje estos requisitos:
a) Hay tres tipos de hortalizas: zanahoria, lechuga y tomate. La zanahoria tiene como propiedad su valor calórico que es de 45 cal, mientras que la lechuga tiene 31 cal y el tomate 39 cal.
b) Toda hortaliza tiene como propiedad específica tipoHortaliza y su valor inicial debe ser “indefinido”.
c) Todas las hortalizas tienen una propiedad común: su componente principal: <<Agua>>
c) Una hortaliza es un tipo de planta cultivada. Una planta cultivada tiene como propiedad específica nombreCientifico y su valor inicial debe ser “desconocido”.
d) Una planta cultivada es un tipo de vegetal. Una propiedad de los vegetales es la movilidad y su valor es común para todos los vegetales: <<Ser vivo sin movilidad>>

Escribir el código correspondiente. Haciendo uso de la herencia por prototipos, crear un objeto de tipo tomate al que se denomine tomate1 y hacer que se muestre por pantalla <<tomate1 tiene la propiedad movilidad: Ser vivo sin movilidad>>.

Código: [Seleccionar]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Ejemplo aprenderaprogramar.com</title><meta charset="utf-8">
<style>
#pulsador {padding:15px; width: auto; display: inline-block; margin: 25px;
cursor: pointer; color: yellow; border-radius: 40px; background: purple;}
</style>
<script type="text/javascript">
function Vegetal() {this.nombre = ''}
Vegetal.prototype.movilidad = 'Ser vivo sin movilidad';
function PlantaCultivada() { this.nombreCientifico = 'desconocido'; }
PlantaCultivada.prototype = new Vegetal();
function Hortaliza() { this.tipoHortaliza = 'indefinido';}
Hortaliza.prototype = new PlantaCultivada();
Hortaliza.prototype.componentePrincipal = 'Agua';
function Zanahoria() { this.valorCalorico = '45 cal';}
Zanahoria.prototype = new Hortaliza();
function Lechuga(){ this.valorCalorico = '31 cal';}
Lechuga.prototype = new Hortaliza();
function Tomate(){ this.valorCalorico = '39 cal';}
Tomate.prototype = new Hortaliza();
function ejemploObjetos(){
var tomate1 = new Tomate();
tomate1.nombre = 'tomate1';
var zanahoria1 = new Zanahoria();
zanahoria1.nombre = 'zanahoria1';
var lechuga1 = new Lechuga();
lechuga1.nombre = 'lechuga1';
var msg = tomate1.nombre + ' tiene la propiedad movilidad: ' + tomate1.movilidad + '. Su componente principal es el ' + tomate1.componentePrincipal;
alert( msg + ' y tiene un valor Calorico de ' + tomate1.valorCalorico);
msg = zanahoria1.nombre + ' tiene la propiedad movilidad: ' + zanahoria1.movilidad + '. Su componente principal es el ' + zanahoria1.componentePrincipal;
alert( msg + ' y tiene un valor Calorico de ' + zanahoria1.valorCalorico);
msg = lechuga1.nombre + ' tiene la propiedad movilidad: ' + lechuga1.movilidad + '. Su componente principal es el ' + lechuga1.componentePrincipal;
alert( msg + ' y tiene un valor Calorico de ' + lechuga1.valorCalorico);
}
</script>
</head>
<body>
<div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2></div>
<div id ="pulsador" onclick="ejemploObjetos()"> Probar </div>
</body>
</html>
« Última modificación: 28 de Octubre 2015, 08:41 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Hola Pedro, todo correcto, bien creada la jerarquía de herencia. Yo hubiera puesto los valores calóricos como numéricos en lugar de como cadenas de texto this.valorCalorico = 45; ya que se trata de valores que podrían usarse en operaciones de cálculo, pero esto en este ejercicio no tiene importancia.

Saludos

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Ok, lo tendré en cuenta.

Gracias por la corrección.

Saludos.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".