Autor Tema: JavaScript Prototype definir propiedades estáticas o comunes a objetos CU01147E  (Leído 1871 veces)

Pepote21

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 92
    • Ver Perfil
Hola a todos. Os paso mi código para el ejercicio CU01147E del curso de fundamentos de programación JavaScript con editor Notepad++.

Gracias, un saludo

Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>
        <title>Ejercicio  tutorialesprogramacionya.com</title>
        <meta charset="utf-8">
        <style type="text/css">
           
        </style>
        <script type="text/javascript"> 
            function cometa(diametro,celsiusTemp,nombre){
    this.diametro=diametro;
this.celsiusTemp=celsiusTemp;
this.nombre=nombre;
var farenheitTemp=0;
this.farenheitTemp=farenheitTemp;
}
cometa.prototype.definicionSegunDiccionario='Diccionario';
cometa.prototype.obtenerRadio=function(){
    return this.diametro/2;
}
cometa.prototype.obtenerTemperaturaFarenheit=function(){
    this.farenheitTemp=(this.celsiusTemp*1.8)+32;
    return this.farenheitTemp;
//return (this.celsiusTemp*1.8)+32;
}
function ejemploObjetos(){
    var cometa1=new cometa(30,-25,'Dylan');
var cometa2=new cometa(5,-15,'Aero');
var cometa3=new cometa(14,-32,'Julius');
var cometas=[cometa1,cometa2,cometa3];
for(var i=0;i<cometas.length;i++){
    alert(cometas[i].nombre+' es un cometa según '+cometas[i].definicionSegunDiccionario+', de radio: '+
cometas[i].obtenerRadio()+' y temperatura: '+cometas[i].obtenerTemperaturaFarenheit()+' grados Farenheit');
}
}
        </script>
    </head>
    <body>
    <script type="text/javascript">   
           
        </script>
       <div style="color:blue;" id ="pulsador" onclick="ejemploObjetos()"> Probar </div>
    </body>
</html>
« Última modificación: 02 de Octubre 2020, 14:25 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Buenas Pepote21

No he entendido bien por qué has definido dentro de cometa

            var farenheitTemp=0;
            this.farenheitTemp=farenheitTemp;

Tampoco veo muy claro que dentro de prototype hagas referencia a this, porque se entiende que prototype aplica a todos los objetos

Código: [Seleccionar]
cometa.prototype.obtenerTemperaturaFarenheit=function(){
    this.farenheitTemp=(this.celsiusTemp*1.8)+32;
    return this.farenheitTemp;
//return (this.celsiusTemp*1.8)+32;
}

También te ha faltado acceder a la propiedad de grados centígrados del cometa

Con todo lo comentado el código quedaría así:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>
        <title>Ejercicio  tutorialesprogramacionya.com</title>
        <meta charset="utf-8">
        <style type="text/css">
           
        </style>
        <script type="text/javascript">
            function cometa(diametro,celsiusTemp,nombre){
    this.diametro=diametro;
this.celsiusTemp=celsiusTemp;
this.nombre=nombre;
}
cometa.prototype.definicionSegunDiccionario='Objeto celeste que viaja a gran velocidad';
cometa.prototype.obtenerRadio=function(){return this.diametro/2;}
cometa.prototype.obtenerTemperaturaFarenheit=function(){
    return (this.celsiusTemp*1.8)+32;
}
function ejemploObjetos(){
    var cometa1=new cometa(30,-25,'Dylan');
var cometa2=new cometa(5,-15,'Aero');
var cometa3=new cometa(14,-32,'Julius');
var cometas=[cometa1,cometa2,cometa3];
for(var i=0;i<cometas.length;i++){
    alert(cometas[i].nombre+' es un cometa con definición según diccionario '+cometas[i].definicionSegunDiccionario+', de radio: '+
cometas[i].obtenerRadio()+' y temperatura '+ cometas[i].celsiusTemp+ ' ºC o temperatura: '+cometas[i].obtenerTemperaturaFarenheit()+' grados Farenheit');
}
}
        </script>
    </head>
    <body>
       <div style="color:blue;" id ="pulsador" onclick="ejemploObjetos()"> Probar </div>
    </body>
</html>

Revísalo y haz pruebas a ver qué te parece.

Nota: ten cuidado porque en muchos ejercicios estás dejando etiquetas <script> ... < / script> vacías como si fuera código sin revisar que se te hubiera olvidado

Salu2

 

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