Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Pepote21 en 24 de Mayo 2017, 06:37

Título: JavaScript Propiedades y métodos estáticos trabajar con clases- objeto CU01148E#
Publicado por: Pepote21 en 24 de Mayo 2017, 06:37
Hola a todos. Os adjunto mi código del ejercicio CU01148E del tutorial JavaScript desde cero usando Notepad++ como editor. Gracias. Un saludo.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>
        <title>Ejercicios aprenderaprogramar.com</title>
        <meta charset="utf-8">
        <style type="text/css">
           
        </style>
        <script type="text/javascript">
    var msg='';
            function Meteorito(d,t,n){
     this.diametro=d;
                 this.temperatura=t;
this.nombre=n;
//Propiedad estática
Meteorito.definicionSegunDiccionario='es un meteoroide que alcanza la superficie de un planeta debido a que no se desintegra por completo en la atmósfera.';
Meteorito.obtenerRadio=function(x){//Método estático
    return x/2;
}
Meteorito.obtenerTemperaturaFarenheit=function(grados){//Método estático   
    grados=(grados*1.8)+32;
return grados;
}
}


function ejemploObjetos(){
    var meteorito1=new Meteorito(975,-20,'Atenea');
msg=meteorito1.nombre+' '+Meteorito.definicionSegunDiccionario+'\n';
msg=msg+'Radio: '+Meteorito.obtenerRadio(meteorito1.diametro)+' m².\n';
msg=msg+'Superficie: '+Math.PI*Meteorito.obtenerRadio(meteorito1.diametro)*Meteorito.obtenerRadio(meteorito1.diametro)+' m².\n';
msg=msg+'Temperatura Celsius: '+meteorito1.temperatura+'ºC equivalente a '+Meteorito.obtenerTemperaturaFarenheit(meteorito1.temperatura)+'ºF';
alert(msg);
}
        </script>
    </head>
    <body>
    <script type="text/javascript">   
           
        </script>
            <div style="color:blue;" id ="pulsador" onclick="ejemploObjetos()"> Probar </div>
    </body>
</html>
Título: Re:JavaScript Propiedades y métodos estáticos trabajar con clases y objeto CU01148E
Publicado por: Ogramar en 24 de Junio 2017, 16:15
Buenas Pepote21

De acuerdo con los ejemplos del curso, las propiedades y métodos estáticos se definirían fuera de la función donde defines la clase de objeto. Según esto el código quedaría así:

Código: [Seleccionar]
<!DOCTYPE html>
<!DOCTYPE html>
<html>
    <head>
        <title>Ejercicios aprenderaprogramar.com</title>
        <meta charset="utf-8">
        <style type="text/css">
           
        </style>
        <script type="text/javascript">
    var msg='';
            function Meteorito(d,t,n){
     this.diametro=d;
                 this.temperatura=t;
this.nombre=n;
}

//Propiedad estática
Meteorito.definicionSegunDiccionario='es un meteoroide que alcanza la superficie de un planeta debido a que no se desintegra por completo en la atmósfera.';
Meteorito.obtenerRadio=function(x){//Método estático
    return x/2;
}
Meteorito.obtenerTemperaturaFarenheit=function(grados){//Método estático   
    grados=(grados*1.8)+32;
return grados;
}

function ejemploObjetos(){
    var meteorito1=new Meteorito(975,-20,'Atenea');
msg=meteorito1.nombre+' '+Meteorito.definicionSegunDiccionario+'\n';
msg=msg+'Radio: '+Meteorito.obtenerRadio(meteorito1.diametro)+' m.\n';
msg=msg+'Superficie: '+Math.PI*Meteorito.obtenerRadio(meteorito1.diametro)*Meteorito.obtenerRadio(meteorito1.diametro)+' m².\n';
msg=msg+'Temperatura Celsius: '+meteorito1.temperatura+'ºC equivalente a '+Meteorito.obtenerTemperaturaFarenheit(meteorito1.temperatura)+'ºF';
alert(msg);
}
        </script>
    </head>
    <body>
            <div style="color:blue; font-size: 24px;" id ="pulsador" onclick="ejemploObjetos()"> Probar </div>
    </body>
</html>


Nota: El radio debe indicarse en m no en m2

Salu2