Autor Tema: Prototype JavaScript. Ejemplos de prototipos y herencia. Ejercicio CU01147E  (Leído 2919 veces)

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Hola, otro ejercicio más...

Citar
EJERCICIO
Define un tipo de objeto Cometa cuyas propiedades de instancia (específicas de cada objeto) sean diametro, temperatura y nombre. La temperatura será un valor numérico que suponemos está en grados centígrados. Como propiedad común a todos los objetos de tipo cometa define definicionSegunDiccionario (que debe contener la definición de cometa según el diccionario) y como métodos comunes obtenerRadio (que debe devolver el radio) y obtenerTemperaturaFarenheit (que debe devolver el valor de temperatura expresado en grados Farenheit).  Crea tres objetos de tipo cometa y comprueba que puedes acceder tanto a las propiedades específicas como a las propiedades comunes y métodos comunes desde cada objeto.

Aquí el código...
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 Cometa(diametro, temperatura, nombre){
this.diametro = diametro;
this.temperatura = temperatura;
this.nombre = nombre;
}
function prototipoCometa(){
this.definicionSegunDiccionario = 'Astro generalmente formado por un núcleo poco denso y una atmósfera luminosa que lo envuelve...';
this.obtenerRadio = function(diametro){return diametro/(2*3.1416)};
this.obtenerTemperaturaFarenheit = function(grados){return (grados*1.8)+32};
}
Cometa.prototype = new prototipoCometa();
function herencias(){
var comet = new Array();
comet[0] = new Cometa(330, -44, 'cometa1');
comet[1] = new Cometa(222, 44, 'cometa2');
comet[2] = new Cometa(345, 18, 'cometa3');
var msg='';
for(i in comet){
msg = 'Cometa: ' + comet[i].definicionSegunDiccionario + '\n\n';
msg = msg + 'El cometa ' + comet[i].nombre + ' tiene de diametro ' + comet[i].diametro + ' km ' + ' y su temperatura ambiente es ';
msg = msg +  comet[i].temperatura + 'ºC\n\nEl radio mide ' + comet[i].obtenerRadio(comet[i].diametro) + ' km.\n\n';
msg = msg + 'Su temperatura ambiente en Farenheit es ' + comet[i].obtenerTemperaturaFarenheit(comet[i].temperatura);
alert(msg);
}
}

</script>
</head>
<body>
<div id="cabecera"><h2>Cursos aprenderaprogramar.com</h2><h3>Ejemplos JavaScript</h3></div>
<div id ="pulsador" onclick="herencias()"> Probar </div>
</body>
</html>

« Última modificación: 24 de Octubre 2015, 20:47 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola!

¿ this.obtenerRadio = function(diametro){return diametro/(2*3.1416)}; ?

El radio es la mitad del diámetro... ¿por qué divides por 2*3.1416?  ???
Responsable de departamento de producción aprenderaprogramar.com

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
 :-[ :-[

En realidad no se porqué lo hice así, supongo que iría convencido de que el dato que tenía era la longitud de la circunferencia y no el diámetro.


 

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".