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: Salvadoruve2 en 18 de Julio 2016, 21:06

Título: class JavaScript Clases? Objetos predefinidos Global Ejercicio resuelto CU01144E
Publicado por: Salvadoruve2 en 18 de Julio 2016, 21:06
Hola mi resultado para el ejercicio propuesto en este apartado CU01144E del taller práctico de programación web con JavaScript desde cero.

He añadido un pequeño contador para ir sumando el numero de pacientes a partir del método "curarPersona".

Estoy abierto a sugerencias. Gracias

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>objeto presente</title>
<meta charset="utf-8">
<style type="text/css">
body {text-align: center; margin: 0 auto;}
div {padding:15px; width: auto; display: inline-block; margin: 25px; margin-top: 300px; cursor: pointer; color: white; border-radius: 40px; background: rgb(202, 60, 60);}
div:hover, div:hover {background: rgb(66, 184, 221);}
</style>
<script type="text/javascript">
var contador = 0;

function funcionInterna() {
this.nombre = "Juan José Millán-Astray";
this.personasCuradas = 220;
this.especialidad = "Neurocirujano";
this.curarPersona = function () {
this.personasCuradas = this.personasCuradas + contador;
}
this.mostrarDatos = function () {
alert("El Médico se llama " + this.nombre + ", su especialidad es " + this.especialidad + " y lleva curadas " + this.personasCuradas +" personas");
}
}

function funcionExterna() {
this.nombre = "Juan José Millán-Astray";
this.personasCuradas = 220;
this.especialidad = "Neurocirujano";
this.curarPersona = funcionCurar;
this.mostrarDatos = funcionMostrar;
}

function funcionCurar() {
this.personasCuradas = this.personasCuradas + contador;
}

function funcionMostrar() {
alert("El Médico se llama " + this.nombre + ", su especialidad es " + this.especialidad + " y lleva curadas " + this.personasCuradas +" personas");
}

function openOne() {

var abrirFuncionUno = new funcionInterna();

if (contador == 0) {
abrirFuncionUno.mostrarDatos();

} else {abrirFuncionUno.curarPersona(); abrirFuncionUno.mostrarDatos();}

contador ++;
}

function openTwo() {
var abrirFuncionDos = new funcionExterna();

if (contador == 0) {
abrirFuncionDos.mostrarDatos();

} else {abrirFuncionDos.curarPersona(); abrirFuncionDos.mostrarDatos();}

contador ++;

}

</script>
</head>
<body>
<div id="interno" onclick="openOne()">Objeto Médico 1</div>
<div id="externo" onclick="openTwo()">Objeto Médico 2</div>
</body>
</html>
Título: Re:(CU01144E) class JavaScript ¿Clases? Objetos predefinidos. Global... Resuelto
Publicado por: Dimitar Stefanov en 19 de Julio 2016, 12:20
Buenas tardes, SAlvadoruve2.

Considero que has cumplido con el cometido del ejercicio porque has utilizado tanto funciones externas como internas de tipo anónimo.

Lo único que podría comentarte que en el ejercicio se comenta que tienes que crear el objeto con nombre "Medico" y tu lo has definido como "funcionInterna" y "funcionExterna". Pero creo que, incluso, tu método es mejor porque así señalas explícitamente cuál función utiliza métodos (funciones) externas y cuál funciones internas. Felicidades.

Saludos.