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: bermartinv en 11 de Febrero 2016, 23:43
-
Ejercicio CU01148E del tutorial JavaScript.
Quisiera preguntar una cosa sobre herencia y metodos estáticos. Entiendo como se hace pero no sé cuando debería usar una manera u otra.
Mi código para este ejercicio
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document ejercicio aprenderaprogramar.com</title>
</head>
<script>
function cometa(diametro,temperaturaC,nombre){
this.diametro = diametro;
this.temperaturaC = temperaturaC;
this.nombre = nombre;
}
cometa.prototype={
definicion : "Un cometa es muy bonito",
obtenerRadio : function (){
return this.diametro / 2;
},
obtenerTemperaturaF : function(){
var fahrenheit = this.temperaturaC * (9/5) + 32;
return fahrenheit;
}
}
function crearObjetos(){
cometa1 = new cometa(200,25,"Amparo");
cometa2 = new cometa(10,2150,"pepe");
cometa3 = new cometa(123,12344,"Saturnino");
alert ('El cometa '+cometa2.nombre+' tiene un diametro de'+cometa2.diametro+' y un radio '+cometa2.obtenerRadio()+'. La temperatura a la que orbita es de '+cometa2.temperaturaC+' y de '+cometa2.obtenerTemperaturaF()+'. Y si no lo sabe un cometa es '+cometa2.definicion);
alert ('El cometa '+cometa1.nombre+' tiene un diametro de'+cometa1.diametro+' y un radio '+cometa1.obtenerRadio()+'. La temperatura a la que orbita es de '+cometa1.temperaturaC+' y de '+cometa1.obtenerTemperaturaF()+'. Y si no lo sabe un cometa es '+cometa1.definicion);
alert ('El cometa '+cometa3.nombre+' tiene un diametro de'+cometa3.diametro+' y un radio '+cometa3.obtenerRadio()+'. La temperatura a la que orbita es de '+cometa3.temperaturaC+' y de '+cometa3.obtenerTemperaturaF()+'. Y si no lo sabe un cometa es '+cometa3.definicion);
}
</script>
<body>
<input type="button" value="cometa" onclick="crearObjetos()" />
</body>
</html>
-
Hola!
Debes usar herencia y propiedades / métodos estáticos cuando vayas a crear muchos objetos de un tipo con new. De esa forma evitas ocupar memoria para las propiedades y métodos con cada objeto, ya que al ser comunes a todos los objetos solo ocupan espacio una vez.
Por ejemplo, piensa que fueras a hacer un efecto visual donde aparecen cientos de puntitos y cada puntito es un objeto. En ese caso es preferible definir propiedades y métodos estáticos.
El código lo he comprobado y todo bien
Saludos!