18
« en: 06 de Agosto 2016, 12:08 »
Hola gracias por la respuesta.
Es cierto que modifiqué las herencias para comprobar si podía obtener información tanto como de un supertipo inmediato como del supertipo siguiente.
En el ejercicio 2 no definí a ProfesorInterino por que no lo pedían en el enunciado, pero y alo he hecho.
Aquí dejo corregidos ambos ejercicios.
<!DOCTYPE html>
<html>
<head>
<title>Herencia prototype</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">
function Persona(nacionalidad) {
this.nombre = 'Marco';
this.nacionalidad = nacionalidad;
}
Persona.prototype.mostrarNAcionalidad = function() {alert('La nacionalidad del médico es ' + this.nacionalidad);}
function Medico(institucion,nacionalidad) {
Persona.call(this, nacionalidad);
this.institucion = institucion || 'Desconocida';
}
Medico.prototype = new Persona();
function MedicoEspecialista(especialidad,nacionalidad,institucion) {
Medico.call(this, institucion, nacionalidad);
this.especialidad = especialidad;
}
MedicoEspecialista.prototype = new Medico();
function start() {
var cardiologo = new MedicoEspecialista('cardiología','Chilena', 'institucion');
cardiologo.mostrarNAcionalidad();
}
</script>
</head>
<body>
<div onclick="start()">Herencia</div>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Herencia prototype</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">
function Persona (nombre) {
this.nombre = nombre;
this.saludar = function () {alert('Hola, soy ' + this.nombre);}
}
Persona.prototype.saludar = function() {alert('Hola, soy ' + this.nombre);}
Persona.prototype.definicion = 'Ser humano';
function Profesor(institucionAcademica,nombre) {
this.institucionAcademica = institucionAcademica;
Persona.call(this, nombre);
}
Profesor.prototype = new Persona();
function ProfesorTitular (añosTrabajados,institucionAcademica,nombre) {
this.añosTrabajados = añosTrabajados;
Profesor.call(this, institucionAcademica, nombre);
}
ProfesorTitular.prototype = new Profesor();
function ProfesorInterino(mesesTrabajados, institucionAcademica, nombre) {
this.mesesTrabajados = mesesTrabajados;
Profesor.call(this, institucionAcademica, nombre);
}
ProfesorInterino.prototype = new Profesor();
function start() {
var profesorTitular1 = new ProfesorTitular(8,'Universidad de León','Juan' );
var profesorInterino1 = new ProfesorInterino(6,'Universidad de León','Pedro');
profesorTitular1.saludar();
}
</script>
</head>
<body>
<div onclick="start()">Herencia2</div>
</body>
</html>
Saludos!!