Autor Tema: JavaScript, HTML y CSS ¿Clases? Objetos predefinidos y objetos creados CU01144E  (Leído 2831 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
A continuación pongo una posible solución del ejercicio CU01144E del curso JavaScript desde cero:

Citar
EJERCICIO

Define un tipo de objeto Medico en JavaScript que tenga como propiedades: nombre (String), personasCuradas (número entero), especialidad (String) y como métodos un método denominado curarPersona y otro método denominado mostrarDatos. El método curarPersona deberá añadir una unidad al valor de la propiedad personasCuradas y el método mostrarDatos deberá mostrar los datos el médico. Por ejemplo, “El médico se llama Juan Eslava, su especialidad es traumatología y lleva curadas 8 personas”. Crea dos objetos del tipo definido, e invoca sus métodos para comprobar que funcionan correctamente.

Código:

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>Ejemplo aprenderaprogramar.com</title>
<script type="text/javascript">

function medico(){
this.nombre='Juan Eslava';
this.personasCuradas=8;
this.especialidad='traumatología';
this.curarPersonas=function(){
this.personasCuradas=this.personasCuradas+1;
}
this.mostrarDatos=function(){
var msg='El médico se llama: '+this.nombre+', su especialidad es: '+this.especialidad+' y lleva curadas: '+this.personasCuradas;
alert(msg);
}
}


function ejemploObjetos(){
var datosMedico= new medico();
var datosMedico2=new medico();//no se ve la diferencia, porque las propiedades en la función medico(); tienen el mismo valor, pero vemos que el código funciona.
datosMedico.mostrarDatos();
datosMedico.curarPersonas();
datosMedico.mostrarDatos();
datosMedico.curarPersonas();
datosMedico.mostrarDatos();
datosMedico2.mostrarDatos();
datosMedico2.curarPersonas();
datosMedico2.mostrarDatos();
datosMedico2.curarPersonas();
datosMedico2.mostrarDatos();
}
</script>
</head>
<body>
<div id="cabecera">
<h2>Cursos aprenderaprogramar.com</h2>
<h3>Ejemplos JavaScript</h3>
</div>
<div style="color: blue;" id="pulsador" onclick="ejemploObjetos()">Probar ejercicio</div>
</body>
</html>

PD: Utilicé funciones internas porque así lo proponían en la entrega CU01144E.

Gracias
« Última modificación: 14 de Febrero 2016, 12:14 por César Krall »

bermartinv

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 298
    • Ver Perfil
Re:CU01144E JavaScript ¿Clases? Objetos predefinidos
« Respuesta #1 en: 12 de Febrero 2016, 18:38 »
Tienes razón dimiste, se me pasó.
Respecto a tu código tengo que decirte el algo. La función medico, por decirlo de una manera es el constructor de los objetos, ahí definiremos las características de cada objeto y cuando llamemos a esta función le daremos todas las variables del objeto. No se inicializa los valores con un objeto específico como has hecho. Como puedes ver has creado los datos de un medico pero para crear otro médico que harias?
Lo suyo es crear un objeto como definición.
Código: [Seleccionar]

function constructor(variable1,variable2,variable3){
  this.nombre = variable1;
  this.ciudad = variable2;
  this.edad = variable3;
}
function crearObjeto(){
persona1 = new constructor("Paco","Madrid",32);
persona2 = new constructor("Pep","Valencia",34);
persona3 = new constructor("Maria","Barcelona",45);
}
}

De esta forma hemos construido un constructor de objetos

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Re:CU01144E JavaScript ¿Clases? Objetos predefinidos
« Respuesta #2 en: 12 de Febrero 2016, 19:06 »
Sí, es la manera lógica de poder utilizar la función como un "constructor". Gracias por corregirme.

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